コード/データ変換ライブラリリファレンスマニュアル

1. コード変換種別

コード/データ変換ライブラリは以下の変換機能を提供します。

Unicodeの文字列をJIPS(E)、JIPS、SJIS、EUCの文字列に変換する機能およびJIPS(E)、JIPS、SJIS、EUCの文字列をUnicodeの文字列に変換する機能を提供します。

 

2. 不正文字変換とパディング


不正文字変換

 コード変換後の文字コードに不正文字が存在した場合、Exceptionをスローするか、指定されている不正文字に置き換えて返却するかを指定することができます。
 不正文字列の処理方法を変更する場合は、JavaVMのプロパティにて以下の設定を行ってください。

上り電文 例外をthrowする。 jp.co.nec.WebOTX.connector.olftp.cci.InvalidcharProcesstypeUp=exception
不正文字列を置換する。 jp.co.nec.WebOTX.connector.olftp.cci.InvalidcharProcesstypeUp=replace
下り電文 例外をthrowする。 jp.co.nec.WebOTX.connector.olftp.cci.InvalidcharProcesstypeDown=exception
不正文字列を置換する。 jp.co.nec.WebOTX.connector.olftp.cci.InvalidcharProcesstypeDown=replace

 不正文字の置換文字を変更する場合は、JavaVMのプロパティにて以下の設定を行ってください。

1バイト文字 jp.co.nec.WebOTX.connector.olftp.cci.Invalidchar1unicode=<Unicode>
2バイト文字 jp.co.nec.WebOTX.connector.olftp.cci.Invalidchar2unicode=<Unicode>

  <Unicode> には Unicode の文字コードを 16進数 4桁で指定してください。

 混在種別と置き換える不正文字の関係は以下の通りです。

混在種別置き換える不正文字
ANKのみ1バイトの置き換える不正文字
2バイトのみ2バイトの置き換える不正文字
混在2バイトの置き換える不正文字

パディング

 コード変換後のデータが格納領域サイズより小さい場合に、残りの領域にパディング文字を設定することができます。
 パディング文字文字を変更する場合は、JavaVMのプロパティにて以下の設定を行ってください。

1バイト文字 jp.co.nec.WebOTX.connector.olftp.cci.Paddingchar1unicode=<Unicode>
2バイト文字 jp.co.nec.WebOTX.connector.olftp.cci.Paddingchar2unicode=<Unicode>

  <Unicode> には Unicode の文字コードを 16進数 4桁で指定してください。

 コード変換時の不正文字変換機能とパディング機能の動作フローを次に示します。 コード変換ライブラリは以下のフローにしたがって処理を行います。

 

 

 

3. 変換テーブル

初期化タイミング

 変換テーブルの初期化を行うタイミングは使用する変換種別のテーブルを初めて使用するときに行います。そのため初回にコード変換を行うときの処理時間は実装方法によっては数十ミリ秒程度かかる場合があります。

4. 文字コード変換のサポート範囲

OLF/TP Adapterのコード変換ライブラリで変換できるコードの範囲は以下のとおりです。

ただし、89〜92区、115〜119区の拡張文字の変換は、JIPS/JIPS(E)の場合は不正文字として扱います。
また、JIS2004で追加になった文字のコード変換にも対応しておりません。FontAvenue 製品「FontAvenue UniAssist JIPS文字セット」と連携することで JIS2004文字を利用可能とする機能を提供しています。

文字種別 変換可能範囲(点) 補足
かな&英数記号

1

1〜94  

2

1〜14
26〜33(*1)
42〜48(*1)
60〜74(*1)
82〜89(*1)
94(*1)
(*1)JIS C 6226-1978からJIS X 0208-1983への改訂で追加された文字

3

16〜25(*1)
33〜58(*2)
65〜90(*3)
(*1)数字
(*2)英大文字
(*3)英小文字

4

1〜83  

5

1〜86  

6

1〜24
33〜56
 

7

1〜33
49〜81
 

8

1〜32 JIS C 6226-1978からJIS X 0208-1983への改訂で追加された文字
未使用

9〜12

   
NEC特殊文字

13

1〜30
32〜54
63〜92
 
未使用

14〜15

   
第一水準

16

1〜18
19(*1)
20〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

17

1〜94  

18

1〜8
9(*1)
10〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

19

1〜33
34(*1)
35〜40
41(*1)
42〜85
86(*1)
87〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

20

1〜34
35(*1)
36〜49
50(*1)
51〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

21

1〜94  

22

1〜37
38(*1)
39〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

23

1〜58
59(*1)
60〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字
 

24

1〜94  

25

1〜59
60(*1)
61〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

26

1〜94  

27

1〜94  

28

1〜40
41(*1)
42〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

29

1〜94  

30

1〜94  

31

1〜56
57(*1)
58〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

32

1〜94  

33

1〜7
8(*1)
9〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

34

1〜94  

35

1〜94  

36

1〜58
59(*1)
60〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

37

1〜54
55(*1)
56〜77
78(*1)
79〜82
83(*1)
84〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

38

1〜85
86(*1)
87〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

39

1〜71
72(*1)
73〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

40

1〜94  

41

1〜15
16(*1)
17〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

42

1〜94  

43

1〜73
74(*1)
75〜88
89(*1)
90〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

44

1〜88
89(*1)
90〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

45

1〜57
58(*1)
59〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

46

1〜94  

47

1〜21
22(*1)
23〜51
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字
第二水準

48

1〜53
54(*1)
55〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

49

1〜94  

50

1〜94  

51

1〜94  

52

1〜67
68(*1)
69〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

53

1〜94  

54

1〜94  

55

1〜94  

56

1〜94  

57

1〜87
88(*1)
89〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

58

1〜94  

59

1〜55
56(*1)
57〜76
77(*1)
78〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

60

1〜94  

61

1〜94  

62

1〜24
25(*1)
26〜84
85(*1)
86〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

63

1〜94  

64

1〜85
86(*1)
87〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

65

1〜94  

66

1〜71
72(*1)
73
74(*1)
75〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

67

1〜61
62(*1)
63〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

68

1〜37
38(*1)
39〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

69

1〜94  

70

1〜94  

71

1〜94  

72

1〜94  

73

1
2(*1)
3〜13
14(*1)
15〜57
58(*1)
59〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

74

1〜3
4(*1)
5〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

75

1〜60
61(*1)
62〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

76

1〜44
45(*1)
46〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

77

1〜77
78(*1)
79〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

78

1〜94  

79

1〜94  

80

1〜54
55(*1)
56〜83
84(*1)
85〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

81

1〜94  

82

1〜44
45(*1)
46〜83
84(*1)
85〜94
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で、簡略自体と旧字体の変更が行われた文字

83

1〜94  

84

1〜4(*1)
5〜6(*2)
(*1)JIS C 6226-1978からJIS X 0208-1983への改定で追加された文字

(*2)JIS X 0208-1983からJIS X 0208-1990への改定で追加された文字

未使用

85〜88

   
NEC選定IBM拡張文字

89〜91

1〜94 JIPS/JIPS(E)に変換する場合、辞書機能を使用する必要があります。辞書機能を使用しない場合には不正文字として扱います。

92

1〜78
81〜94
JIPS/JIPS(E)に変換する場合、辞書機能を使用する必要があります。辞書機能を使用しない場合には不正文字として扱います。
未使用

93〜94

   
外字

95〜105

1〜94  

106〜114

1〜94  
IBM拡張文字

115〜118

1〜94 JIPS/JIPS(E)に変換する場合、辞書機能を使用する必要があります。辞書機能を使用しない場合には不正文字として扱います。

119

1〜12 JIPS/JIPS(E)に変換する場合、辞書機能を使用する必要があります。辞書機能を使用しない場合には不正文字として扱います。

JIPSの区点とSJISの区点のマッピング

 JIPSの区点とSJISの区点のマッピングは以下のとおりです。

変換テーブルの種類および定義

 各変換テーブルの指定したJIS年度種別とKIKOコードの対応は以下のとおりです。

変換テーブル

JIS

年度種別

KIKO

コード

備考

1

Unicode

→EUC

JISX0208-1983

3

バイト文字は未サポート

2

Unicode

→JIPS

JISX0208-1978

JISX0208-1990

KI:0x1A70

KO:0x1A71

3

Unicode

→JIPS(E)

JISX0208-1978

JISX0208-1990

KI:0x3F75

KO:0x3F76

4

Unicode

→SJIS

JISX0208-1990

5

EUC

→Unicode

JISX0208-1983

3

バイト文字は未サポート

6

JIPS

→Unicode

JISX0208-1978

JISX0208-1990

KI:0x1A70

KO:0x1A71

7

JIPS(E)

→Unicode

JISX0208-1978

JISX0208-1990

KI:0x3F75

KO:0x3F76

8

SJIS

→Unicode

JISX0208-1990


外字文字

 外字文字の変換をサポートします。サポート範囲は以下の通りです。ただし、EUCの場合は2バイトの外字のみサポートします。

SJIS

EUC

JIPS

JIPS(E)

Unicode

95区〜104区

F040〜F4FC

G1:85区〜94区

F5A1〜FEFE

84区〜93区

7421〜7D7E

84区〜93区

804F〜D0A1

E000〜E3AB

105区

F540〜F59E

G3:85区〜94区

8FF5A1〜8FFEFE

94区

7E21〜7E7E

94区

A14F〜A1A1

E3AC〜E409

106区〜114区

F59F〜F9FC

   

E40A〜E757

 

G0,G1

 JIPSの場合のG0領域、G1領域の文字コード範囲は次のとおりです。(ただし、G1領域は未サポート)

G0領域 G1領域

1区〜94区

2121〜7E7E

1区〜94区

A1A1〜FEFE



ベンダ依存文字

 変換対象の日本語にはどのようにUnicodeにマップするかがベンダ依存となっているベンダ依存文字と呼ばれる文字があります。このベンダ依存文字は、JavaのUnicodeとのコード変換では文字化けを起こすことがあります。

 JavaのAPを使用してUnicode→MS932→Unicodeに変換した結果を次に示します。

 

 

SJISに対する変換のマッピング不整合文字

Unicode

MS932

Unicode

12

¢

セント記号

00A2

8191

FFE0

13

£

ポンド記号

00A3

8192

FFE1

14

¬

ノット記号

00AC

81CA

FFE2

15

二重縦線

2016

3F

(文字化け)

16

 

マイナス記号

2212

3F

(文字化け)

 

17

 

波線

301C

3F

(文字化け)

 

18

 

濁点

309B

814A

309B

19

半濁点

309C

814B

309C

20

アンド記号

FF06

8195

FF06

21

半角の濁点

FF9E

DE

FF9E

22

半角の半濁点

FF9F

DF

FF9F

 

コード変換ライブラリでは、ベンダ依存文字を以下のUnicodeに対応付けます。

 

キャラクタ

Unicode

SJIS

備考

1

FFE3

8150

 

2

2015

815C

 

3

FF3C

815F

 

4

FF5E

301C

8160

「8160」をUnicodeに変換した値は「FF5E」に対応付ける。

5

2225

2016

8161

「8161」をUnicodeに変換した値は「2225」に対応付ける。

6

2026

8163

 

7

FF0D

2212

817C

「817C」をUnicodeに変換した値は「FF0D」に対応付ける。

8

FFE5

818F

 

9

¢

FFE0

00A2

8191

「8191」をUnicodeに変換した値は「FFE0」に対応付ける。

10

£

FFE1

00A3

8192

「8192」をUnicodeに変換した値は「FFE1」に対応付ける。

11

¬

FFE2

00AC

81CA

「81CA」をUnicodeに変換した値は「FFE2」に対応付ける。

12

309B

814A

 

13

309C

814B

 

14

FF06

8195

 

15

FF9E

DE

 

16

FF9F

DF

 


IBM拡張文字(115〜119区)

 IBM拡張文字をJIPS/JIPS(E)に変換する場合、辞書機能を使用します。辞書機能を使用しない場合には不正文字として扱います。
辞書機能の使用方法については辞書機能の使用方法を参照してください。
また、IBM拡張文字をJSPで表示させるためにはcharset=Windows-31Jを指定してください。

5. 辞書機能の使用方法

指定方法

 辞書指定機能を使用するかどうかをJavaVM のシステムプロパティで指定します。

形式

-Djp.co.nec.WebOTX.convert.dicfile=辞書ファイル名


システムプロパティが指定されている場合に、次のいずれかに該当するときはエラーとし、 Exceptionをスローします。

辞書ファイルが指定されていないとき。

辞書ファイルが存在しないとき。

辞書ファイルの読み込み権がないとき。

辞書ファイルの内容が不正であるとき。

辞書変換コード種別

辞書変換コード種別は次の通りです。

 

辞書変換コード種別

説明

1

UNICODE-EUC

変換テーブル「Unicode→EUC」および「EUC→Unicode」のUnicodeとEUCの文字コードの対応付けを変更する。

2

UNICODE-JIPS

変換テーブル「Unicode→JIPS」および「JIPS→Unicode」のUnicodeとJIPSの文字コードの対応付けを変更する。

3

UNICODE-JIPSE

変換テーブル「Unicode→JIPS(E)」および「JIPS(E)→Unicode」のUnicodeとJIPS(E)の文字コードの対応付けを変更する。

4

UNICODE-SJIS

変換テーブル「Unicode→SJIS」および「SJIS→Unicode」のUnicodeとSJISの文字コードの対応付けを変更する。

5

SJIS-EUC

指定したSJISの文字コードをJDKのエンコーディングMS932でUnicodeに変換し、変換テーブル「Unicode→EUC」および「EUC→Unicode」のUnicodeとEUCの文字コードの対応付けを変更する。

6

SJIS-JIPS

指定したSJISの文字コードをJDKのエンコーディングMS932でUnicodeに変換し、変換テーブル「Unicode→JIPS」および「JIPS→Unicode」のUnicodeとJIPSの文字コードの対応付けを変更する。

7

SJIS-JIPSE

指定したSJISの文字コードをJDKのエンコーディングMS932でUnicodeに変換し、変換テーブル「Unicode→JIPS(E)」および「JIPS(E)→Unicode」のUnicodeとJIPS(E)の文字コードの対応付けを変更する。

 

文字-区変換種別

文字-区変換種別は次の通りです。

 

文字-区変換種別

説明

1

C

文字単位の変換マッピングを指定する。

 

辞書ファイルの定義方法

辞書ファイルの定義方法は次の通りです。

辞書ファイルの定義

形式

辞書変換コード種別{

文字-区変換種別,変換文字コードA,変換文字コードB,

・・・

}

定義例

#UnicodeとJIPSの文字マッピング (「槇」、「」の定義例)

UNICODE-JIPS{

C,69C7,4B6A,

C,9AD9,D4DC,

}

#SJISとJIPSEの文字マッピング (「槇」、「」の定義例)

SJIS-JIPSE{

C,EAA0,D269,

C,FBFC,A9BC,

}


6. 字体入れ替え文字

字体入れ替え文字に関するOLF/TP Adapterでのコード変換の仕様(ポリシー)について以下に記述します。

大前提として、JIS78変換を行う場合は同一区点に変換し、JIS90変換を行う場合は、同一文字に変換するという仕様で変換しています

以下にコード変換の概要図を示します。

上図において、クライアントからJSP間のコード種別は「SJIS」、JSPとOLF/TP Adapter コード変換間のコード種別は「Unicode」、OLF/TP Adapterコード変換とホスト間のコード種別は「JIPS」であることを表しています。

文中のJIS78で変換する場合は同一区点、JIS90で変換する場合は同じ文字を指すというのは、図中のSJISとJIPSの関係を指しています。そのため、JIS78で変換する場合は、SJISとJIPSが同一区点を指すように、JIS90で変換する場合は、SJISとJIPSで同じ文字を指すような変換を行います。

 

 

G0領域、G1領域について

以下にJIPSコードにおけるG0領域、G1領域の概要について記述します。

先頭のJIPSコードが数値で始まる場合G0領域、アルファベットで始まる場合G1領域となります。

字体入れ替え文字の変換パターンには、7つのパターンが存在します。

パターン1:JIS78欄のJIPSコードがG1領域の文字

パターン2:JIS78欄のJIPSコードがG0領域の文字

パターン3:NEC特殊文字

パターン4:JIPS固有文字

パターン5:JIS83/90追加文字

パターン6:文字が「迩」「邇」の場合

パターン7:文字が「靭」「靱」の場合

上記7つのパターンの詳細を以下に示します。

 

 

パターン1:字体入れ替え文字一覧のJIS78欄のコードがG1領域の文字の場合

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

5516

88A0

3022

1602

D6A1

(G1文字)

*1

3022

1602

クライアントからホストに対してSJISコード「88A0」、Unicode「5516」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「3022」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「D6A1」に変換します。

ホストからクライアントに対してJIPSコード「3022」が送られた場合、JIS78変換では同一区点に変換するので、Unicode「5516」、SJISコード「88A0」に変換します。JIS90変換では同一文字が存在しないため、不正文字*2として変換します。JIPSコード「D6A1」が送られた場合、JIS78変換では、同一区点の文字が存在しないため不正文字として変換し、JIS90変換では同一文字に変換するのでUnicode「5516」、SJISコード「88A0」に変換します。

 

 

パターン2:字体入れ替え文字一覧のJIS78欄のコードがG0領域の文字の場合

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

9BF5

88B1

3033

1619

724D

8245

9C3A

E9CB

724D

8245

3033

1619

クライアントからホストに対してSJISコード「88B1」、Unicode「9BF5」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「3033」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「724D」に変換します。

ホストからクライアントに対してJIPSコード「3033」が送られた場合、JIS78変換では同一区点に変換するので、Unicode「9BF5」、SJISコード「88B1」に変換します。JIS90変換では同一文字に変換するため、Unicode「9C3A」、SJISコード「E9CB」に変換します。JIPSコード「724D」が送られた場合、JIS78変換では同一区点に変換するため、Unicode「9C3A」、SJISコード「E9CB」に変換し、JIS90変換では同一文字に変換するのでUnicode「9BF5」、SJISコード「88B1」に変換します。

 

 

パターン3:NEC特殊文字(13区)

NEC特殊文字とは、字体入れ替え文字一覧のJIS78欄のJIPSコードが、13区(2D**)であるコードを指します。

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

222A

81BE

2240

0232

2D7C

1392

879C

2D7C

1392

 

 

 

 

 

2240

0232

クライアントからホストに対してSJISコード「81BE」「879C」が送られた場合、両者とも対応するUnicodeは「222A」となります。JIS78変換では同一区点に変換しますが、UnicodeからはSJISコード「81BE」「879C」どちらのコードが元なのか分からないため、JIPSコード「2240」に変換することとします。JIS90変換では同一文字に変換するため、JIPSコード「2D7C」に変換します。

ホストからクライアントに対してJIPSコード「2240」が送られた場合、JIS78変換では同一区点にマッピングするのでUnicode「222A」に変換しますが、Unicode「222A」に対応するSJISコードが2つ存在するため、JSPがSJISコード「81BE」に変換します。JIS90変換では同一文字が存在しないため、不正文字として変換します。

JIPSコード「2D7C」が送られた場合、JIS78変換では同一区点に変換するためUnicode「222A」に変換しますが、対応するSJISコードが2つ存在するため、JSPがSJISコード「81BE」に変換します。JIS90変換では同一文字に変換するのでUnicode「222A」に変換しますが、対応するSJISコードが2つ存在するため、JSPがSJISコード「81BE」に変換します

 

 

パターン4:JIPS固有文字

JIPS固有文字とは、字体入れ替え文字一覧のJIS78欄のJIPSコードが、2C**で始まるコードを指します。

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

2500

849F

2821

0801

2C24

1204

*3

 

 

 

 

2821

0801

クライアントからホストに対してSJISコード「849F」、Unicode「2500」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「2821」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「2C24」に変換します。

ホストからクライアントに対してJIPSコード「2821」が送られた場合、JIS78変換では同一区点に変換するので、Unicode「2500」、SJISコード「849F」に変換します。JIS90変換では同一文字が存在しないため、不正文字として変換します。JIPSコード「2C24」が送られた場合、JIS78変換では、同一区点の文字が存在しないため不正文字として変換し、JIS90変換では同一文字に変換するのでUnicode「2500」、SJISコード「849F」に変換します。

 

 

パターン5:JIS83/90追加文字

JIS83/90*4で追加された6文字を指します。JIS90のコードで7421〜7426までの6文字のことを指しています。

JIS83追加文字

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

*5

582F

EA9F

7421

8401

3646

2238

E000

7421

8401

5C2D

8BC4

3646

2238

B6DA

クライアントからホストに対してSJISコード「EA9F」、Unicode「582F」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「7421」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「3646」に変換します。SJISコード「8BC4」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「3646」に変換します。JIS90変換では同一文字に変換するので、「B6DA」に変換します。

ホストからクライアントに対してJIPSコード「7421」が送られた場合、JIPSコード「7421」は外字領域の文字であるため、JIS78変換、JIS90変換共にUnicode「E000」に変換します。JIPSコード「3646」が送られた場合、JIS78変換では同一区点に変換するため、Unicode「5C2D」、SJISコード「8BC4」に変換します。JIS90変換では同一文字に変換するため、Unicode「582F」、SJISコード「EA9F」に変換します。JIPSコード「B6DA」が送られた場合、JIS78変換では同一区点の文字が存在しないため不正文字として変換し、JIS90変換ではUnicode「5C2D」、SJISコード「8BC4」に変換します。

JIS90追加文字

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

51DC

EAA3

7425

8405

B4A8

E004

7425

8405

クライアントからホストに対してSJISコード「EAA3」、Unicode「51DC」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「7425」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「B4A8」に変換します。

ホストからクライアントに対してJIPSコード「7425」が送られた場合、JIPSコード「7425」は外字領域の文字であるため、JIS78変換、JIS90変換共にUnicode「E004」に変換します。JIPSコード「B4A8」が送られた場合、JIS78変換では同一区点の文字が存在しないため不正文字として変換し、JIS90変換ではUnicode「51DC」、SJISコード「EAA3」に変換します。

注)JIPSコード「7422」の場合、Unicode「E001」、JIPSコード「7423」の場合、Unicode「E002」とそれぞれ連番で対応します。

 

 

パターン6:迩・邇

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

8FE9

93F4

4676

3886

D6F1

9087

E78E

6D6E

7778

4676

3886

*6

6D6E

7778

クライアントからホストに対してSJISコード「93F4」、Unicode「8FE9」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「4676」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「D6F1」に変換します。SJISコード「E78E」、Unicode「9087」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「6D6E」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「4676」に変換します。

ホストからクライアントに対してJIPSコード「4676」が送られた場合、JIS78変換では同一区点に変換するので、Unicode「8FE9」、SJISコード「93F4」に変換します。JIS90変換では同一文字に変換するので、Unicode「9087」、SJISコード「E78E」に変換します。JIPSコード「D6F1」が送られた場合、JIS78変換では、同一区点の文字が存在しないため不正文字として変換し、JIS90変換では同一文字に変換するのでUnicode「8FE9」、SJISコード「93F4」に変換します。JIPSコード「6D6E」が送られた場合、JIS78変換では同一区点に変換するのでUnicode「9087」、SJISコード「E78E」に変換します。JIS90変換では同一文字が存在しないため、不正文字として変換します。

 

 

パターン7:靭・靱

文字

UNICODE

 

JIS90

 

JIPS(JIS78)

コード

SJIS

JIS

区点

コード

区点

976D

9078

3F59

3157

D6CB

(G1文字)

7057

8055

9771

E8D5

7057

8055

D7E1

(G1文字)

3F59

3157

クライアントからホストに対してSJISコード「9078」、Unicode「976D」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「3F59」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「D6CB」に変換します。SJISコード「E8D5」、Unicode「9771」が送られた場合、JIS78変換では同一区点に変換するので、JIPSコード「7057」に変換します。JIS90変換では同一文字に変換するので、JIPSコード「D7E1」に変換します。

ホストからクライアントに対してJIPSコード「3F59」が送られた場合、JIS78変換では同一区点に変換するので、Unicode「976D」、SJISコード「9078」に変換します。JIS90変換では同一文字に変換するため、Unicode「9771」、SJISコード「E8D5」に変換します。JIPSコード「7057」が送られた場合、JIS78変換では同一区点に変換するため、Unicode「9771」、SJISコード「E8D5」に変換し、JIS90変換では同一文字に変換するのでUnicode「976D」、SJISコード「9078」に変換します。JIPSコード「D6CB」が送られた場合、JIS78変換では同一区点の文字が存在しないため不正文字として変換し、JIS90変換では同一文字に変換するため、Unicode「976D」、SJISコード「9078」に変換します。JIPSコード「D7E1」が送られてきた場合、JIS78変換では同一区点の文字が存在しないため不正文字として変換し、JIS90変換では同一文字に変換するため、Unicode「9771」、SJISコード「E8D5」に変換します。

パターン1からパターン7までの対応表を元に、クライアントからホスト、ホストからクライアントにどのようなコードになるかを示したのが以下の表です。SJISに対応するJIS90のコードも載せています。グレー部分は、OLF/TP Adapterのコード変換ライブラリで、マッピングテーブルに登録する内容です。

 

【JIS78で変換する場合】

クライアント(SJIS、JIS90→Unicode)→ホスト(JIPS)

パターン

SJIS

JIS90

Unicode

JIPS

1

88A0

3022

5516

3022

2

88B1

3033

9BF5

3033

E9CB

724D

9C3A

724D

3

81BE

2240

222A

2240

879C

2D7C

222A

2240

4

849F

2821

2500

2821

5

EA9F

7421

582F

7421

6

93F4

4676

8FE9

4676

E78E

6D6E

9087

6D6E

7

9078

3F59

976D

3F59

E8D5

7057

9771

7057

 

ホスト(JIPS)→クライアント(Unicode→JIS90)

パターン

JIPS

Unicode

JIS90

SJIS

1

3022

5516

3022

88A0

D6A1

0000

2

3033

9BF5

3033

88B1

724D

9C3A

724D

E9CB

3

2240

222A

2240

81BE

2D7C

222A

2240

81BE

4

2821

2500

2821

849F

2C24

0000

5

7421

E000

6

4676

8FE9

4676

93F4

6D6E

9087

6D6E

E78E

D6F1

0000

7

3F59

976D

3F59

9078

7057

9771

7057

E8D5

D6CB

0000

D7E1

0000

 

【JIS90で変換する場合】

クライアント(JIS90→Unicode)→ホスト(JIPS)

パターン

SJIS

JIS90

Unicode

JIPS

1

88A0

3022

5516

D6A1

2

88B1

3033

9BF5

724D

E9CB

724D

9C3A

3033

3

81BE

2240

222A

2D7C

879C

2D7C

222A

2D7C

4

849F

2821

2500

2C24

5

EA9F

7421

582F

3646

6

93F4

4676

8FE9

D6F1

E78E

6D6E

9087

4676

7

9078

3F59

976D

D6CB

E8D5

7057

9771

D7E1

 

ホスト(JIPS)→クライアント(Unicode→JIS90)

パターン

JIPS

Unicode

JIS90

SJIS

1

D6A1

5516

3022

88A0

3022

0000

2

3033

9C3A

724D

E9CB

724D

9BF5

3033

88B1

3

2240

0000

2D7C

222A

2240

81BE

4

2C24

2500

2821

879C

2821

0000

5

3646

582F

7421

EA9F

7421

E000

6

4676

9087

6D6E

E78E

6D6E

0000

D6F1

8FE9

4676

93F4

7

3F59

9771

7057

E8D5

7057

976D

3F59

9078

D6CB

976D

3F59

9078

D7E1

9771

7057

E8D5

 


*1 唖の異字体であるが、JIS90ベース(SJIS、Unicode)の文字には存在しない。

*2 OLF/TP Adapterでは、不正文字を「*」としている。

*3 「─」とは別の文字である。

*4 JIS78欄の文字がG0領域の場合、JIS83追加文字。G1領域の場合、JIS90追加文字である。

*5 「堯」が追加文字である。

*6 迩のしんにょうに点が多い文字の事である。

 

 


7. APIリファレンス

WebOTX OLF/TP Adapterが提供するコード/データ変換を行うためのライブラリ Code/Data Convert libraryのAPI仕様について説明します。 (別ウィンドウで開きます)