UTF-8 → cp932(Shift_JIS)変換表

UTF-8にはcp932(Shift-JIS)に存在しない文字があるため、cp932(Shift_JIS)前提のシステムで使用することができないことがあります。

基本的に ♥ ♠ ♦ ♣ のようにcp932(Shift_JIS)に存在しない記号は (はぁと) や外字などへ適当に変換するしかありません。

ただし実際にはcp932(Shift_JIS)でも置換可能な文字だけが問題で変換エラーになっているケースが多数あります。

本ページでは文書ファイルをUTF-8からcp932(Shift-JIS)に変換するとき単純置換してさほど問題ない文字の対応表を記します。

曖昧な変換

cp932(Microsoft定義のShift_JIS) と Shift_JIS とは厳密に言うと ~ など一部の文字コードが異なります。

このためWindowsとLinuxでunicode(UTF-8)へ変換した場合異なる文字コードに変換されることがあります。

UTF-8からcp932の変換では同じ文字に変換されるはずですが、unix系のツールではうまく処理できない場合があるので気をつける必要があります。

cp932からunicodeへ変換した場合に異なる文字

(注意) Vista以降での0x815CはU+2014

波ダッシュと全角チルダ

cp932(Shift_JIS)では半角波ダッシュや全角チルダが存在しないので全角波ダッシュへ変換します。

ただし波ダッシュと全角チルダは意味的に違うものであるため、単純に置換すると文脈的に間違いとなることがあります。

UTF-8

cp932

(注意)

Unicodeの波ダッシュやチルダの仕様には前述の通り、曖昧な変換や文脈の問題があるので気をつける必要があります。

特にU+301Cの波ダッシュはWindows Vista以降でコード自体は変わりませんがフォントの表示は異なります。

波ダッシュ(Wikipedia)

印刷標準字体

印刷関係のファイルでは「印刷標準字体」を優先して扱っていることがあります。

このうちcp932(Shift_JIS)へ単純置換可能な文字は次の表のようになります。

unicodeの "叱" はサロゲートペアのためWebページではきちんと表示されないことがあります。

旧字体

いわゆる「旧仮名遣い」の文字のうちcp932(Shift_JIS)へ単純置換可能な文字は次の表のようになります。