Loading AI tools
コンピュータのバグのひとつ、文字が正しく表示されなくなる現象 ウィキペディアから
文字化け(もじばけ)とは、コンピュータで文字を表示する際に、正しく表示されなくなってしまう現象のこと。
例として「文字化け」が、「 æ–‡å—化㑠」や「譁?ュ怜喧縺」と表示されるなど。
「文字化け」という言葉は、コンピュータ環境で原則としてマルチバイト文字を使用しない欧米等のラテンアルファベット使用言語においては該当する用語が存在しなかったことから、日本語 の “Mojibake”という言葉がそのまま通用するようになった。→#Mojibake
ソフトウェアやハードウェアの不具合 (trouble)、文字コードの違い、エンコーディングとデコーディングの不一致、文字フォントの違いなどが原因となる。パソコン通信の時代は、ハードウェア上の文字化けが頻発した。インターネットの普及後は、運用系(オペレーティングシステム)、ブラウザ等ソフトウェアに起因する文字化けがある。
1バイト文字だけを表示しようとするシステム、2バイト文字だけを表示しようとするシステム、国際規格に対応するすべての文字を表示しようとするシステムなど、どの大きさの文字コードが表現できるかの違いが存在する[1][2]。
文字コードによっては表現できる文字の範囲、表示できる他の言語の文字など違いがある。そのため、特定の文字コードで表現できていた文字列を、他の文字コードで表現しようとすると、対応処理の誤り、対応する文字が存在しないことなどから、文字を表現できない。
Unicode(UTF-7) | ���̃�� (�q���Y�_�C�G�b�g) |
---|---|
Shift_JIS | 縺薙・繝。繝シ繝ォ縺ッ 繝シ縺ョ逧・ァ倥∈縺ョ繝。繝・そ繝シ繧ク縺ァ縺吶€・ |
Unicode(UTF-8) | このメールは 皆様へのメッセージです。 |
Latin-1 | ã?“ã?®ãƒ¡ãƒ¼ãƒ«ã?¯ Šãƒ¼ã?®çš†æ§˜ã?¸ã?®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã?§ã?™ã€‚ |
US-ASCII | c c .c !c <c +c / c c c <c .g f' c 8c .c !c c ;c <c 8c 'c c |
アラビア語 | ك?“ك?كƒكƒكƒك? كƒك?هš†ن˜ك?ك?كƒكƒƒك‚؛كƒك‚ك?ك?™ك€‚ |
文字コードによっては既に割り当てられている文字の変更を許容していたり、新たに任意の文字を割り当られる拡張領域を設けているものがある。また、文字コードのアップデート(仕様変更)によって字形が変更されることがある。同じ文字コードでもどの実装が採用されているかによって、表示が異なったり表示ができなかったりする。
1バイト文字と2バイト文字を同時に表示しようとするシステムでは、前から後ろへの検索においては、1バイトと2バイトの違いが確認できる。後ろから前への検索においては、1バイトと2バイトの違いが確認できる文字コードと確認できない文字コードがある。そのため、タグ付き文字列の場合には、これらの処理の違いを確認できるような文字コード、文字フォントに対するタグをつけることがある。エスケープシーケンスも、ここではエンコーディングに分類する。
この節の加筆が望まれています。 |
文字フォントによって、表現できる文字の範囲に違いがある。そのため、オペレーティングシステム (OS)、ソフトウェア(ブラウザ等)が対応できる文字フォント、あるいは導入済みの文字フォントの種類によって表現できないことがある。1バイト文字には1バイト文字フォント、2バイト文字には2バイト文字フォントを別々に指定できるソフトウェアもあるが、画一的に1種類の文字フォントしか指定できないソフトウェアもある。
ファイル名、フォルダ名などで、ソフトウェアでは2バイト文字を使うと文字化けすることがある。これは、特定の機能が、1バイト文字を想定した設計になっている場合か、2バイト文字であっても特定の文字集合だけを想定した設計になっている場合である。
2バイト文字などを想定せずに設計したソフトウェア、通信機能では、文字の長さに制約があり、2バイト文字で表現した場合に、タグ、エスケープシーケンス、拡張符号などの挿入により、制限で指定している文字列の長さより短い状態で文字切れすることがある。また、この文字切れが2バイト文字の1バイト目で終了している場合には、それ以降の文字表現が文字化けすることがある。
Shift_JISを内部コードに利用するアプリケーションでは、エスケープシーケンスの取得の仕方に一工夫必要である。ところがそれがなされていないため問題となる場合がある。海外のアプリケーションの日本語対応時に特に現出しやすい。
Shift_JISにおいて、2バイト目が0x5c(日本の円記号、ASCIIではバックスラッシュ)となる文字(「申」「能」「表」など、俗に言う「ダメ文字」)の場合、2バイト目の0x5cがエスケープを意味する制御文字として動作することがあり、正しく表示できなくなる場合がある。
通信や記録の段階で、文字データの一部が欠落・変質してしまった結果として、文字データが意味不明な文字列として表示されてしまうこともある。
ワープロソフトで独自のフォーマットを使用して保存したファイルを、別のワープロソフトやテキストファイルしか読み込むことができないアプリケーションで開いた場合に文字化けが発生する。ワープロソフトによってはバージョンが異なるだけで文字化けを起こすこともある。
文書ファイルでないファイルをワープロソフトなどで開こうとした場合にも理解できない文字列として表示され、これも文字化けに含めることもある。
英語など各言語では、「文字化け」を「mojibake」と日本語のローマ字表記で使用することが定着している。
これは、米国のアルダスで日本語版などのソフトウェアの開発を行っていた久保芳之がページメーカーのソフトウェアを開発する過程で文字化けが発生することを説明するために「mojibake」という言葉を使用していたことが、その後Macintoshの関連業界で普及し、そのまま定着したことによる[3]。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.