日本語環境ユーザーズガイド

文字コード変換規則

ここでは、日本語 EUC、PCK、UTF-8 間の文字コード変換規則について説明します。

ここで説明する変換規則に従うインタフェースは次のものです。

変換規則の概要

ベンダー定義文字、ユーザー定義文字についての変換規則の概要は次のようになります。

図 3–1 文字コード変換規則

ベンダー定義文字、ユーザー定義文字についての文字コード変換規則を表示しています。

日本語 EUC と PC 漢字コード間の変換規則

日本語 EUC と PCK の文字コード変換規則は『TOG 日本ベンダ協議会』の日本語 EUC・シフト JIS コード変換仕様』に基づいています。変換規則の概要は、図 3–1 を参照してください。

  1. JIS X 0201 で規定されている英数字、記号

    変換先でも変換元と同じコードになります。

  2. JIS X 0201 で規定されているカタカナ、記号

    変換先でも変換元と同じコードになります。ただし、日本語EUC 側ではEUCコードセット2を示す SS2 (0x8e) が先頭に付加されます。

  3. JIS X 0208 で規定されている文字

    それぞれのコードセットで割り当てられている JIS X 0208 の同じ区、点用のコードポイントの間で変換します。

  4. JIS X 0212 で規定されている文字

    PCK で IBM 拡張文字として定義されている文字の場合は、次の項目を参照してください。その他の文字については対応する文字がないため、置換文字に変換します。置換文字は「〓」(名称: GETA MARK、PCK の値: 0x819C)

  5. ベンダー定義文字

    1. 特殊記号 (13 区記号)

      付録 A 「ベンダー定義文字の変換」を参照してください。

    2. IBM 拡張文字

      JIS X 0208 または JIS X 0212 で同じ文字が規定されている場合はその文字との間で変換します。どちらにも規定されていない場合は、JIS X 0212 の 83 区、84 区の領域を使って変換します。具体的なコードの対応は、付録 B 「フォントの移行」 を参照してください。

    3. NEC 選定 IBM 拡張文字

      PCK から日本語 EUC への変換では、PCK で一度 IBM 拡張文字に変換してから日本語 EUC に変換します。日本語 EUC から PCK への変換では、IBM 拡張文字から NEC 選定 IBM 拡張へは変換されません。

  6. ユーザー定義文字

    以下の領域を使って変換し、区番号、点番号の小さいほうから順にコードを割り当てるものとします。

 

PCK 

日本語 EUC 

ユーザー定義文字 

1880 文字 

0xf040 - 0xf4fc 

0xf540 - 0xf9fc 

0xf5a1 - 0xfefe 

0x8ff5a1 - 0x8ffefe 

日本語 EUC と UTF-8 間の変換規則

(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 を表示しています。 (トノスアクセント付き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 で同じ名称で規定されている文字に変換します。

 例 : JIS X 0221:1995 の附属書 1 表 3 で規定されている文字を表示しています。  の場合

表 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 との対応情報にもとづき変換します。

 例 : JIS X 0221:1995 の附属書 1 表 3 で規定されていない文字を表示しています。  の場合

表 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 間の変換規則

PC 漢字コードと UTF-8 の変換は、内部で一旦変換元のコードセットから日本語 EUC に変換し、そこから目的のコードセットへ変換します。

PC 漢字コードと日本語 EUC との間の変換、日本語 EUC と UTF-8 との間の変換についての記述を参照してください。