文字化け
文字化け」とは、コンピューターソフトで文字が正しく表示されなかった場合に表示される、正しくない、読めない文字のこと。コンピュータでは、文字を「文字コード」で符号化している。転送時には、各文字を符号化の位置(番号)で置き換えます。再度、文字を表示する際には、その位置を文字に置き換えて表示します。このとき、元のエンコーディングが指定されていないと、番号を表示用の文字に置き換えたときに、別の文字が使われてしまうことがある。この問題を解決するために導入されたのがUnicodeで、UTF-8はほとんどの一般的な文字を2バイトでエンコードすることができます。
Unicodeが導入される前は、他の文字エンコーディングが使用されていました。例えば、ISO-8859には15種類のエンコーディングがあります。これらは、英語で一般的に使用されている文字に対応しています。これらには「特殊文字」のいくつかの「ブロック」があり、エンコーディングごとに異なるファイルが用意されています。
誤ったフォントエンコーディングが使用されている場合、ウェブサイトはこのように表示されます。
日本語版ウィキペディアの「もじばけ」の記事は、UTF-8エンコーディングを使用しています。このスクリーンショットは、Windows標準のCP1252エンコーディングを使ってデコードしたときの様子を示しています。
語源
Mojibake は日本語の単語です。文字化け([moʥibake])という言葉は、2つの部分から成り立っています。 文字(moji)は、手紙、文字を意味します。化ける(bake)は、動詞の化ける(bakeru)から来ていて、変装して現れる、形をとる、悪い方向に変化するという意味です。文字通り、「キャラクターの突然変異」という意味です。
質問と回答
Q:「モジバケ」とは何ですか?
A:「もじばけ」とは、コンピュータのソフトウェアがテキストを正しく表示できないときに現れる、不正確で読めない文字のことを指します。
Q: コンピューターを使うとき、テキストはどのようにエンコードされるのですか?
A:文字は文字符号化方式で符号化され、各文字は符号化方式における位置や番号に置き換えられます。
Q: テキストを転送する際に、元のエンコーディングが指定されていない場合はどうなるのでしょうか?
A:元のエンコーディングが指定されていない場合、番号を表示用の文字に置き換える際に、別の文字が使われることがあります。
Q:Unicodeとはどのようなもので、どのようにこの問題を解決するのですか?
A:Unicodeは、ほとんどの文字を2バイトで表現できる文字符号化規格です。異なる文字エンコーディングを使用する問題を解決し、文字が正しく表示されることを保証しています。
Q: Unicodeの前に使われていた他の文字エンコーディングの例を教えてください。
A: ISO-8859は、Unicode以前に使用されていた他の文字エンコーディングの例です。
Q: ISO-8859にはいくつの異なるエンコーディングがありますか?
A: ISO-8859には15種類のエンコーディングが含まれています。
Q: ISO-8859の特殊文字は、すべてのエンコーディングで同じですか?
A: いいえ、ISO-8859の特殊文字は、各エンコーディングで異なるファイルになっています。