2008年6月26日木曜日

eucJP-ms

eucJP-ms



TOG/JVC
(オープン・グループ / 日本ベンダ協議会) CDE/Motif 技術検討 WG が定めたコードセット名です。UI-OSF共通日本語EUC にユーザー定義文字とIBM拡張文字、NEC特殊文字を追加した 日本語EUC (eucJP-open) と Unicode (UCS) との間のコード変換規則に Microsoft Windows NT 3.51 の式の変換規則を用いる場合に、このコードセット名を用います。



Unicode 経由で Windows-31J で使用できる全文字 (コードポイント) の相互変換が可能となるように変換規則が定められています。



変換規則



eucJP-ms の変換規則の概要は次の通りです。




EUC コードセット0 (ASCII)



  • ASCII (ISO/IEC 646 IRV) とみなして Unicode に変換する。




EUC コードセット1 (JIS X 0208 + NEC特殊文字 + ユーザー定義文字)



  • 1区~84区は Microsoft Windows NT 3.51 での 1区~84区の変換と同様の変換をする。

  • 85区~94区 (ユーザー定義文字領域) は、U+E000~U+E3AB (私用領域) に変換する。




EUC コードセット2 (JIS X 0201 片仮名)



  • U+FF61~U+FF9F (HALFWIDTH KATKANA) に変換する。




EUC コードセット3 (JIS X 0212 + JIS X 0208/0212 に無いIBM拡張文字 + ユーザー定義文字)



  • JIS X 0212 補助漢字は、それぞれ対応する Unicode のコードポイントに変換する。

  • 83区~84区 (JIS X 0208/0212 に無いIBM拡張文字) は、それぞれ対応する Unicode のコードポイントに変換する。

  • 85区~94区 (ユーザー定義文字領域)は、U+E3AC~U+E757 (私用領域) に変換する。





TOG/JVC CDE/Motif 技術検討 WG の資料では、NEC特殊文字についての記述がありませんが、同WG の資料「Unicode とユーザ定義文字・ベンダ定義文字に関する問題点と解決策」では eucJP-ms について「Windows の動作するコンピュータとの間のデータ交換 に使われることを想定している」とあるので、それに必要な変換規則を補ってあります。



eucJP-ms の変換表は、このページの最後に掲げる「参考文献・資料等」の「オープン・グループ」の Web ページから入手可能です。



各文字セットの eucJP-ms でのコード割り当て



eucJP-ms での NEC特殊文字、IBM拡張文字、ユーザー定義文字のコード割り当てを簡単に説明します。




NEC特殊文字 (13区)

Windows-31J で 13区に定義されている NEC特殊文字は、EUC コードセット 1 (JIS X 0208) の 13区にそのまま割り当てられています。


次の文字コード表の水色のコードポイントに割り当てられている文字は、JIS X 0208:1997 の 2区にも定義されている文字で、Unicode 経由で文字コードの変換を行うと、これらのコードポイントは、JIS のコードポイントに変換されます。また、灰色のコードポイントは、IBM特殊文字でも定義されています。重複符号化されている文字の変換については後で説明します。


13区の文字コード表



IBM拡張文字 (Windows-31J:115区~119区)

Windows-31J では、一部の記号文字を除いて89区~92区と115区~119区の両方でで重複して割り当てがなされていますが、eucJP-ms では、大文字のローマ数字を含む後者の文字セットが EUC コードセット3 に割り当てられています。詳細は次の通りです。



IBM拡張文字のうち、JIS X 0208, JIS X 0212 に対応する文字があるものについては、JIS のコードポイントを用います。


それ以外の文字については、コードセット3 の 84区94点から逆方向に割り当てられています。次の文字コード表に、その割り当てを示しておきます。灰色のコードポイントについては、NEC特殊文字の方にもあります。重複符号化されている文字の変換については後で説明します。


eucJP-ms コードセット3 83区の文字コード表


eucJP-ms コードセット3 84区の文字コード表


ユーザー定義文字 (95区~114区)

Windows-31J のユーザー定義文字領域 95区~114区は、次の2個所に分割して割り当てられています。



Windows31-J の 95区~104区

EUC コードセット0 の 85区~94区

Windows31-J の 105区~114区

EUC コードセット3 の 85区~94区




重複符号化されている文字



TOG/JVC CDE/Motif 技術検討 WG が配っている eucJP-ms の変換表では表1の文字が重複符号化されています。



ほとんどの文字は、Windows での Windows-31J と Unicode との変換の規則をそのまま適用可能ですが、次の文字に関しては JIS X 0212 補助漢字の文字と重複符号化されているため検討が必要です。




  1. U+2116 NUMERO SIGN

  2. U+FF5E FULLWIDTH TILDE



U+FF5E FULLWIDTH TILDE は、本来であれば、JIS X 0212 の2区23点 (EUCでは 0x8FA2B7) に対応させるべきですが、マイクソロソフトの Windows では、 JIS X 0208 の 1区33点 (WAVE DASH, EUC では 0xA1C1) を U+FF5E FULLWIDTH TILDE と対応付けている為、JIS X 0212 と組み合わせて使う場合に問題が生じます。



eucJP-ms は、Windows の動作するコンピュータとの間のデータ交換 に使われることを想定しているため、Windows-31J のコードポイントが正しく変換できるようにする必要があります。その事から、U+FF5E FULLWIDTH TILDE は、JIS X 0208 の1区33点 (0xA1C1) と対応付けるのが妥当と思われます。U+2116 NUMERO SIGN に関しても Windows-31J との文字コード変換を優先されるのが妥当と思われます。



以上のことを踏まえて、eucJP-ms で重複符号化されている文字は次のように変換するのが妥当と思われます。




  • Unicode → eucJP-ms の変換は、Unicode → Windows-31J と同じ規則を適用し表1 の○印の付いているコードポイントに変換する。

  • eucJP-ms → Unicode の変換は、多対1 の変換とする。































表1 eucJP-ms で重複符号化されている文字
文字UnicodeJIS X 0208NEC特殊文字JIS X 0212IBM拡張文字文字名称(Unicode)
№(No.) U+2116 0xADE2 ○ 0x8FA2F1 0x8FF4AC NUMERO SIGN
℡(TEL) U+2121 0xADE4 ○ 0x8FF4AD TELEPHONE SIGN
Ⅰ( I ) U+2160 0xADB5 ○ 0x8FF3FD ROMAN NUMERAL ONE
Ⅱ( II ) U+2161 0xADB6 ○ 0x8FF3FE ROMAN NUMERAL TWO
Ⅲ( III ) U+2162 0xADB7 ○ 0x8FF4A1 ROMAN NUMERAL THREE
Ⅳ( IV ) U+2163 0xADB8 ○ 0x8FF4A2 ROMAN NUMERAL FOUR
Ⅴ( V ) U+2164 0xADB9 ○ 0x8FF4A3 ROMAN NUMERAL FIVE
Ⅵ( VI ) U+2165 0xADBA ○ 0x8FF4A4 ROMAN NUMERAL SIX
Ⅶ( VII ) U+2166 0xADBB ○ 0x8FF4A5 ROMAN NUMERAL SEVEN
Ⅷ( VIII ) U+2167 0xADBC ○ 0x8FF4A6 ROMAN NUMERAL EIGHT
Ⅸ( IX ) U+2168 0xADBD ○ 0x8FF4A7 ROMAN NUMERAL NINE
Ⅹ( X ) U+2169 0xADBE ○ 0x8FF4A8 ROMAN NUMERAL TEN
U+221A 0xA2E5 ○ 0xADF5 SQUARE ROOT
U+2220 0xA2DC ○ 0xADF7 ANGLE
U+2229 0xA2C1 ○ 0xADFB INTERSECTION
U+222A 0xA2C0 ○ 0xADFC UNION
U+222B 0xA2E9 ○ 0xADF2 INTEGRAL
U+2235 0xA2E8 ○ 0xADFA BECAUSE
U+2252 0xA2E2 ○ 0xADF0 APPROXIMATELY EQUAL TO OR THE IMAGE OF
U+2261 0xA2E1 ○ 0xADF1 IDENTICAL TO
U+22A5 0xA2DD ○ 0xADF6 UP TACK
㈱((株)) U+3231 0xADEA ○ 0x8FF4AB PARENTHESIZED IDEOGRAPH STOCK
U+FF5E 0xA1C1 ○ 0x8FA2B7 FULLWIDTH TILDE


eucJP-ms を使用する上での注意点



以下のような問題があるため、eucJP-ms は、Windows-31J との相互変換のみに用い、なおかつ使用する文字は、Windows-31J と同等の文字に限定して使うのが望ましいと思われます。



Windows-31J と共通する注意点



  • 次の文字が、Unicode への変換が Unicodeコンソーシアムの JIS0208.TXT や、JIS X 0208:1997 の文字名称を元にした変換と異なるので注意が必要です。












    文字EUCeucJP-msJIS0208.TXTJIS X 0208:1997
    UnicodeUnicodeUnicode
    0xA1BDU+2015U+2015U+2014 EM DASH
    0xA1C1U+FF5EU+301CU+301C WAVE DASH
    0xA1C2U+2225U+2016U+2016 DOUBLE VERTICAL LINE
    0xA1DDU+FF0DU+2212U+2212 MINUS SIGN
    0xA1F1U+FFE0U+00A2U+00A2 CENT SIGN
    0xA1F2U+2225U+00A3U+00A3 POUND SIGN
    0xA2CCU+FFE2U+00ACU+00AC NOT SIGN




JIS X 0212 に関する注意点




  • Windows-31J に変換する時には、IBM拡張文字にある文字のみが変換可能です。


  • JIS X 0212 の次の区-点 位置の文字は、eucJP-ms → Unicode → eucJP-ms の変換で、次のように変換されます。






    JIS X 0212 区-点eucJP-msUnicodeeucJP-ms
    2-23 (TILDE)0x8FA2B7U+FF5E (FULLWIDTH TILDE)0xA1C1 (~)
    2-81 (NUMERO SIGN)0x8FA2F1U+2116 (NUMERO SIGN)0xADE2 (No.)


0 件のコメント: