The Wayback Machine - https://web.archive.org/web/20190519002645/https://m.webry.info/at/msyk/200511/article_2.htm
eucJP-ms と CP51932 の違い
[image]
eucJP-ms と cp51932 は、両方とも、EUC-JP をWindows標準キャラクタセットの文字を扱えるようにしたもので、それぞれ次のような拡張が行われています。
eucJP-ms は、オープン・グループ / 日本ベンダ協議会 が定義したもので、EUC-JP のコードセット1 (JIS X 0208) に、13区 NEC特殊文字と 85区〜94区には、ユーザー定義文字を追加し、コードセット3 (JIS X 0212 補助漢字) では、JIS X 0212 で定義されている文字は、JIS X 0212 のコードポイントを用い、足りない文字を 83区〜84区に追加、85区〜94区にユーザー定義文字を追加しています。
一方、cp51932 は、マイクロソフトが定義したもので、EUC-JP のコードセット1 (JIS X 0208) に、13区 NEC特殊文字と 89区〜92区には、NEC選定IBM拡張文字を追加して、コードセット3のJIS X 0212 は用いません。
また、ユーザー定義文字は、コードセット3は使わないため、コード領域が足りず扱えないということになります。
注意点としては、ユーザー定義文字を扱えるかどうかという事と、JIS X 0208 の 85区〜94区のコード割り当てが eucJP-ms と cp51932 とで異なるという事です。cp51932 の文字列を eucJP-ms によって UTF-8 などに変換してもエラーにはなりませんが、NEC選定IBM拡張文字が、ユーザー定義文字に化けてしまいますので御注意ください。
以上のように、eucJP-ms は、Windows で使われている cp51932 とは、異なるものなので、いわゆる機種依存文字を EUC-JP 符号化方式で処理する場合は、細心の注意を払って使用するようにする必要があります。
Windows の API で、cp51932 の文字コード変換する場合は、MultiByteToWideChar(), WideCharToMultiByte() ではなく、MLANG.DLL の ConvertINetMultiByteToUnicode(), ConvertINetUnicodeToMultiByte() でなければ、変換できません。
x
10
x
9
x
8
x
5
x
5
x
5
気持玉(気持ちを伝えよう)
[なるほど]
[驚いた]
[面白い]
[ナイス]
[ガッツ]
[かわいい]
(反映には時間がかかります)
コメントする
[3]トラックバック(8)
この記事のテーマ
文字コード
[8]ブログトップ
この記事を友達に教える
画像あり|画像無し
分割表示|一括表示
文字サイズ:大|中|小
[*]ウェブリブログ