【もじばけ】

文字化け(もじばけ) とは?

最終更新:
💡 同じバイトを、違うルールで読んでしまう

保存された文字データを違うエンコーディングで読むなどして、意図しない文字が表示される現象。フォント不足との違い、開き直しと変換、復元できる条件を解説します。

📌 このページのポイント
文字化け:同じバイト、違う読み方元の文字「日本」UTF-8:E6 97 A5 E6 9C ACUTF-8で読む日本意図した表示Windows-1252で読む日本意図しない表示上書き前に原本を残し、正しい方式で開き直す置換で情報を失うと、戻せない場合もフォントの字形不足とは分けて調べる
同じバイト列を別のエンコーディングで読む比較です。読み方の宣言だけではバイトは変わらず、変換・上書きで失われた原文を必ず復元できるとは限りません。
ひよこ ひよこ
文字が変な記号になるのは、なぜ?
ペンギン先生 ペンギン先生
文字は、ファイルなどではバイトという数値の列で保存されるよ。それを文字に戻すルールがエンコーディング。たとえばUTF-8のデータを別の方式で読むと、同じバイトでも違う文字に見えることがあるんだ。
ひよこ ひよこ
UTF-8のファイルにも、起きる?
ペンギン先生 ペンギン先生
受け取るアプリや途中の処理が別の方式を使うと、起こり得るよ。文字コードの情報が、すべてのデータに必ず付いているわけでもない。ファイルを保存した方式と、読む側の指定や通信の宣言をそろえる必要があるんだ。
ひよこ ひよこ
文字コードを変えれば、直る?
ペンギン先生 ペンギン先生
元のバイトが残っていて、正しい方式が分かれば、開き直して直る場合があるよ。ただし、誤った読み方で表示した内容を上書き保存すると、元の情報を失うことがある。まず原本のコピーで確認しよう。
ひよこ ひよこ
「�」になった文字も、戻せる?
ペンギン先生 ペンギン先生
読み取り時の不正なデータが、置換文字へ変わる場合があるよ。その置換された文字だけから、元のバイトを特定できるとは限らない。まだ原本が残っているか、途中で変換や上書きが行われたかを確認するんだ。
ひよこ ひよこ
四角い箱の表示も、文字化け?
ペンギン先生 ペンギン先生
フォントに、その文字を描く形がない場合もあるよ。エンコーディングが正しくても、表示用の字形が足りないと箱などになる。文字データの解釈と、文字を描くフォントの問題を分けて調べよう。
もっと詳しく知りたい人へ

Webページの宣言をUTF-8へ変えるだけでよい?

宣言は、データをどう読むかの情報です。ファイルそのものもUTF-8で保存する必要があります。宣言だけ変えてもバイトは変わらないため、HTTPの指定や処理の途中の変換も含め、実際の方式をそろえます。

開き直しと、エンコーディング変換は違う?

開き直しは、元のバイトを別の読み方で解釈します。変換は、正しく読んだ文字を別の方式のバイトへ書き出します。誤った解釈のまま変換すると、誤った文字を保存することになるため、先に原文が正しく読めるか確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「文字化け」って出てきたら「文字データの読み方が合わず、意図しない文字になる現象」と思えばだいたいOK!
📖 おまけ:英語の意味
「Mojibake」 = 文字が意図しない形で表示される現象
💬 日本語の「文字化け」を表す呼び方です。暗号化ではなく、文字とバイトの対応や、データの解釈の問題として扱います。

参考資料

← 用語集にもどる