「文字化け」という言葉
文字化けは、「文字」が「化ける」、つまり別の文字に姿を変えてしまうことを表す言葉です。1990 年代の日本では Shift_JIS、EUC-JP、ISO-2022-JP(JIS コード)という複数の文字コードが併用されていたため、メールや Web ページの文字化けは日常的な出来事でした。この言葉は英語にも mojibake としてそのまま取り入れられています。
文字化けが起こる仕組み
コンピューターは文字をバイト(数値)の並びとして保存します。どのバイトがどの文字を表すかを決めるのが文字コードです。たとえば UTF-8 では「こ」は 3 バイト E3 81 93 で保存されますが、Shift_JIS は同じバイトを 2 バイトずつ別の文字として読みます。その結果、縺薙s… のような漢字と記号が混じった文字列になります。
この段階ではバイトそのものは失われていません。読み方を間違えているだけなので、正しい文字コードで読み直せば元の文章に戻ります。Mojibuster は化けた文字をバイトに戻し、正しく読み直します。
文字化け
莉カ蜷搾シ壻シ夊ュー縺ョ縺顔衍繧峨○ 譚ア莠ャ譛ャ遉セ 莨夊ュー螳、
修正後
件名:会議のお知らせ 東京本社 会議室
よくある文字化けのパターン
縺薙s縺ォ縺。縺ッ:UTF-8 の文章を Shift_JIS として読んだもの。UTF-8 の CSV を Excel で開いたときによく見られます(Excel の CSV 文字化け)。‚±‚ñ‚É‚¿‚Í:Shift_JIS の文章を欧米向けの設定(Windows-1252)で表示したもの(Shift_JIS を UTF-8 に変換)。äや€:ヨーロッパの言語の UTF-8 を Windows-1252 として読んだもの。世界で最もよく見られる文字化けです。?、〓、�:変換できなかった文字が置き換えられたもの。この場合、元の文字の情報は失われています。
文字化けのおもな原因
- UTF-8 で保存された CSV を Excel でダブルクリックして開いた(BOM がないと Shift_JIS として読まれます)。
- Shift_JIS のファイルを、Mac や UTF-8 前提のアプリで開いた。
- メールや Web ページが、実際とは違う文字コード(charset)を宣言している。
- すでに化けた文字列を、もう一度別の文字コードで変換した(二重の文字化け)。
文字化けは必ず直せる?
バイトが残っていれば、ほとんどの場合は直せます。ただし、保存や送信の途中で ? や � に置き換わった文字は、元の情報が失われているため戻せません。Mojibuster は直せる部分をすべて修正し、戻せなかった箇所の数を表示します。
文字化けを防ぐには
- ファイルは UTF-8 で保存する。Excel で開く CSV は UTF-8(BOM 付き) で保存する。
- HTML では
<meta charset="utf-8">を指定し、MySQL や MariaDB ではutf8mb4を使う。 - データを取り込むときは、文字コードを自動判別に任せず明示的に指定する。
- 文字コードの変換は、システムの境界で一度だけ行う。
よくある質問
文字化けは解読できますか?
はい。文字化けの多くは別の文字コードで読まれただけなので、正しく読み直せば元の文章に戻ります。上の枠に貼り付けるかファイルをドロップすると、Mojibuster が自動で解読します。
ファイルが壊れたり、ウイルスに感染したりしたのですか?
いいえ。文字化けは表示の問題で、ウイルスではありません。多くの場合、データも失われていません。
文字化けと「�」の違いは?
縺薙s のような文字化けには元のバイトが残っているため修正できます。� は読み込めなかったバイトの代わりに入る記号で、元の文字はすでに失われています。
文章はアップロードされますか?
いいえ。修正はすべてブラウザー内で行われ、文章が送信・保存されることはありません。