文字化け
出典: フリー百科事典『ウィキペディア(Wikipedia)』
文字化け(もじばけ)とは、コンピュータで文字を表示する際に、正しく表示されない現象のこと。
- 例:「文字化け」が、「•¶Žš‰»‚¯」と表示されるなど。
目次 |
[編集] 主な原因
ソフトウェアやハードウェアのトラブル、エンコーディングの違いなどが原因となる。パソコン通信の時代は、ハードウェア上の文字化けがしばしば頻発した。今日では、ソフトウェアに起因する文字化けが多い。
[編集] 表示時のエンコーディングの指定ミスによるトラブル
文字データを間違ったエンコーディングで表示しようとしたために、正しく表示できなくなる場合がある。ASCII文字だけは、Shift_JIS、EUC-JP、ISO-2022-JP、UTF-8においても同じ符合になっており、マルチバイト文字だけが化けてしまう場合に典型的である。
[編集] 搭載フォントセットの違いによるトラブル
Windows環境とMacintosh環境で文字コードを交換する場合、共通に使用可能なShift JISを用いていても、それぞれが独自に拡張した文字(機種依存文字)を持っている。これら文字を使用していた場合は意図しない文字として表示されてしまう場合がある。また、同じようにUTF-8で表示していても、アプリケーション毎の実装により、使える文字の数が限られており、搭載していない文字が化けることがある。
[編集] 日本語対応の甘さによるトラブル
Shift_JISを内部コードに利用するアプリケーションでは、エスケープシークエンスの取得の仕方に一工夫必要である。ところがそれがなされていないため問題となる場合がある。海外のアプリケーションの日本語対応時に特に現出しやすい。
- Shift_JISにおいて、2バイト目が0x5c(日本の円記号、米国ではバックスラッシュ)となる文字(「申」「能」「表」など、俗に言う「ダメ文字」)の場合、2バイト目の0x5cがエスケープを意味する制御コードとして動作することがあり、正しく表示できなくなる場合がある。
[編集] 通信経路、文字変換でのトラブル
通信や記録の段階で、文字データの一部が欠落・変質してしまった結果として、文字データが意味不明な文字列として表示されてしまうこともある。
- ASCII以外の文字をBase64やquoted-printable等のエンコーディングなしに、7ビット系通信路で送受信しようとした場合、上位1ビットが削除され文字化けする結果となることがある。
- MicrosoftのUnicode⇔Shift_JIS変換APIは波ダッシュと全角チルダの割り当てが、JIS X 0221の基準と違うため、文字化けの原因となる。⇒Unicode
- OS毎で改行を表す制御コードの指定が違うため、変換に失敗するとその部分が化けることもある。
[編集] 関連項目
- 円記号(俗に言う「ダメ文字」)
- Wikipedia日本語版での文字化けの議論。Wikipedia:井戸端会議ログ4
- Microsoftコードページ932 シフトJISのメーカ独自拡張に関する詳しい記述
- 機種依存文字
- Wikipedia:特殊記号