ここでは、日本語 EUC、PCK、UTF-8 間の文字コード変換規則について説明します。
ここで説明する変換規則に従うインタフェースは次のものです。
ベンダー定義文字、ユーザー定義文字についての変換規則の概要は次のようになります。
日本語 EUC と PCK の文字コード変換規則は『TOG 日本ベンダ協議会』の日本語 EUC・シフト JIS コード変換仕様』に基づいています。変換規則の概要は、図 3–1 を参照してください。
JIS X 0201 で規定されている英数字、記号
変換先でも変換元と同じコードになります。
JIS X 0201 で規定されているカタカナ、記号
変換先でも変換元と同じコードになります。ただし、日本語EUC 側ではEUCコードセット2を示す SS2 (0x8e) が先頭に付加されます。
JIS X 0208 で規定されている文字
それぞれのコードセットで割り当てられている JIS X 0208 の同じ区、点用のコードポイントの間で変換します。
JIS X 0212 で規定されている文字
PCK で IBM 拡張文字として定義されている文字の場合は、次の項目を参照してください。その他の文字については対応する文字がないため、置換文字に変換します。置換文字は「〓」(名称: GETA MARK、PCK の値: 0x819C)
ベンダー定義文字
特殊記号 (13 区記号)
付録 A ベンダー定義文字の変換を参照してください。
IBM 拡張文字
JIS X 0208 または JIS X 0212 で同じ文字が規定されている場合はその文字との間で変換します。どちらにも規定されていない場合は、JIS X 0212 の 83 区、84 区の領域を使って変換します。具体的なコードの対応は、付録 B フォントの移行 を参照してください。
NEC 選定 IBM 拡張文字
PCK から日本語 EUC への変換では、PCK で一度 IBM 拡張文字に変換してから日本語 EUC に変換します。日本語 EUC から PCK への変換では、IBM 拡張文字から NEC 選定 IBM 拡張へは変換されません。
ユーザー定義文字
以下の領域を使って変換し、区番号、点番号の小さいほうから順にコードを割り当てるものとします。
|
PCK |
日本語 EUC |
---|---|---|
ユーザー定義文字 1880 文字 |
0xf040 - 0xf4fc 0xf540 - 0xf9fc |
0xf5a1 - 0xfefe 0x8ff5a1 - 0x8ffefe |
(1) JIS X 0201 で規定されている文字
JIS X 0201:1997 で規定されている文字の名称と、Unicode で規定されている文字の名称との間で対応をとります。
例 :「A」の場合
表 3–1 変換規則
日本語 EUC |
JIS 名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|
0x41 |
LATIN CAPITAL LETTER A |
U+0041 |
LATIN CAPITAL LETTER A |
0x41 |
ただし、JIS X 0208 と同時に使用する関係上 JIS X 0208:1997 附属書 5 表 1 で代替名称が規定されている文字についてはその代替名称をもとに変換します。
例 :「ア」の場合
表 3–2 変換規則
日本語 EUC |
JIS 名称 |
JIS 代替名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|---|
0x8eb2 |
KATAKANA LETTER A |
HALFWIDTH KATAKANA LETTER A |
U+FF71 |
HALFWIDTH KATAKANA LETTER A |
0xefbdb1 |
例外として、以下の 2 文字は文字の名称に関係なく同じコードを持つ文字に変換します。
表 3–3 変換規則
日本語 EUC |
JIS 名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|
0x5c |
YEN SIGN |
U+005c |
REVERSE SOLIDUS |
0x5c |
0x7f |
OVER LINE |
U+007f |
TILDE |
0x7f |
(2) JIS X 0208 で規定されている文字
JIS X 0208:1997 で規定されている文字の名称と、Unicode で規定されている文字の名称との間で対応をとります。
例 :「亜」の場合
表 3–4 変換規則
日本語 EUC |
JIS 区点 |
JIS 名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|---|
0xb0a1 |
16 区 1 点 |
CJK UNIFIED IDEOGRAPH-4E9C |
U+4E9C |
CJK UNIFIED IDEOGRAPH-4E9C |
0xe4ba9c |
ただし、JIS X 0201 と同時に使用する関係上 JIS X 0208:1997 附属書 5 表 2 で代替名称が規定されている文字についてはその代替名称をもとに変換します。
例 :「A」の場合
表 3–5 変換規則
日本語 EUC |
JIS 区点 |
JIS 名称 |
JIS 代替名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|---|---|
0xa3c1 |
3 区 33 点 |
LATIN CAPITAL LETTER A |
FULLWIDTH LATIN CAPITAL LETTER A |
U+FF21 |
FULLWIDTH LATIN CAPITAL LETTER A |
0xefbca1 |
(3) JIS X 0212 で規定されている文字
特殊文字 (附属書 1 で規定されている文字) およびアルファベット (附属書 2 で規定されている文字) については、JIS X 0221:1995 の附属書 3 表 4 に基づき変換します。
例 : |
(トノスアクセント付きA) の場合 |
表 3–6 変換規則
日本語 EUC |
JIS 区点 |
JIS 名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|---|
0x8fa6e1 |
6 区 65 点 |
トノスアクセント付き大文字A (JIS X 0221 附属書3表4 での名称) |
U+0386 |
GREEK CAPITAL LETTER A WITH TONOS |
0xe08e86 |
例外として、以下の 1 文字は以下のように変換します。
表 3–7 変換規則
日本語 EUC |
JIS 区点 |
JIS 名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|---|
0x8fa2b7 |
2 区 23 点 |
TILDE |
U+FF5E |
FULLWIDTH TILDE |
0xefbd9e |
漢字 (附属書 3 で規定されている文字) の中で、JIS X 0221:1995 の附属書 1 表 3 で規定されているものは、その名称をもとに、Unicode で同じ名称で規定されている文字に変換します。
例 : |
の場合 |
表 3–8 変換規則
日本語 EUC |
JIS 区点 |
JIS 名称 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|---|
0x8fb0a6 |
16 区 6 点 |
CJK UNIFIED IDEOGRAPH-4E1F |
U+4E1F |
CJK UNIFIED IDEOGRAPH-4E1F |
0xe4b89f |
JIS X 0221:1995 の附属書 1 表 3 で規定されていない文字は、Unicode データベースに記述されている JIS との対応情報にもとづき変換します。
例 : |
の場合 |
表 3–9 変換規則
日本語 EUC |
JIS 区点 |
Unicode |
Unicode 名称 |
UTF-8 |
---|---|---|---|---|
0x8fb0a1 |
16 区 1 点 |
U+4E02 |
CJK UNIFIED IDEOGRAPH-4E02 |
0xe4b882 |
(4) ベンダー定義文字
特殊記号 (13 区記号) - 付録 A ベンダー定義文字の変換 を参照してください。
IBM 拡張文字 - 付録 A ベンダー定義文字の変換 を参照してください。
(5) ユーザー定義文字
Unicode 基本複数言語面 (BMP) の私用領域 (PUA) の先頭 (U+E000) から 1880 文字分を使用して以下のように対応させます。対応する領域の概念については、図 3–1 を参照してください。
表 3–10 変換規則
日本語 EUC |
Unicode |
UTF-8 |
---|---|---|
0xf5a1 ~ 0xf5fe |
U+E000 ~ U+E05D |
0xee8080 ~ 0xee819d |
0xf6a1 ~ 0xf6fe |
U+E05E ~ U+E0BB |
0xee819e ~ 0xee82bb |
... | ||
0xfea1 ~ 0xfefe |
U+E34E ~ U+E3AB |
0xee8d8e ~ 0xee8eab |
0x8ff5a1 ~ 0x8ff5fe |
U+E3AC ~ U+E409 |
0xee8eac ~ 0xee9089 |
0x8ff6a1 ~ 0x8ff6fe |
U+E40A ~ U+E467 |
0xee908a ~ 0xee91a7 |
... | ||
0x8ffea1 ~ 0x8ffefe |
U+E6FA ~ U+E757 |
0xee9bba ~ 0xee9d97 |
UTF-8 で使用できる 6400 文字のユーザー定義文字のうち、下記の文字については日本語 EUC 側に対応する領域がないため、置換文字に変換します。
Unicode : U+E758 ~ U+F8FF
UTF-8 : 0xee9d98 ~ 0xeea3bf
置換文字は「?」 (名称 : QUESTION MARK、日本語 EUC の値 : 0x3f) を使用します。
PC 漢字コードと UTF-8 の変換は、内部で一旦変換元のコードセットから日本語 EUC に変換し、そこから目的のコードセットへ変換します。
PC 漢字コードと日本語 EUC との間の変換、日本語 EUC と UTF-8 との間の変換についての記述を参照してください。