スマートフォン用の表示で見る

5C問題

ウェブ

5C問題

ごしーもんだい

Shift_JISでは、「ソ」「噂」など一部の字の2バイト目に、0x5C(Shift_JISでは¥記号、ASCIIなどではバックスラッシュ)を使用している。多くのプログラミング言語 (C、PerlBourne Shellなど多数) では、この0x5Cをエスケープ文字としている。したがって、ソースコードや文字データの処理においてShift_JISを想定していないプログラミング環境では問題が起こる。この問題は、同じように2バイト目の範囲に0x5Cを含むBig5や、まれではあるがGBKなどの文字コードでも発生しうる。UTF-8では0x5Cを含む文字は\(U+005C)が唯一なのでこの問題は起こらない。

また、0x5C以外についても類似の問題が発生することがある。たとえば、UnixMS-DOSなどのシェル上で0x7C (Shift_JISASCIIではバーティカルバー) を含む文字(−、ポ、л、榎、掛、弓、芸、……)をファイル名に使用しようとすると、パイプ記号と認識され、正常にファイルが作成されなかったり、読み込みが不良になったりすることがある。

現在でも、シングルバイト文字コード対応のソフトウェアShift_JIS環境で使用すると、改行などの動作やファイル名の処理などにしばしばこの問題がつきまとう。この不具合を招く、2バイト目に0x5Cを持つ文字のことを、ダメ文字と呼ぶ。