Hatena Blog Tags

5C問題

(ウェブ)
ごしーもんだい

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

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

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

このタグの解説についてこの解説文は、すでに終了したサービス「はてなキーワード」内で有志のユーザーが作成・編集した内容に基づいています。その正確性や網羅性をはてなが保証するものではありません。問題のある記述を発見した場合には、お問い合わせフォームよりご連絡ください。