「�」「?」の文字化けは戻せる?|欠けた文字の復元と、戻せない文字化けの見分け方
文字化けした文に「�」(黒いひし形に?)が交じっていると、もう戻せないと思いがちです。実は「�」の所で失われたのは多くの場合1バイトだけで、文字コードの決まりと前後の文脈から、元の文字をかなりの確率で推測できます。一方、「?」や「・」に置き換わって保存されたもの、「�」ばかりの文字化けは戻せません。この記事では、「�」が出る理由と推測で補える仕組み、戻せる・戻せないの見分け方、文字化けを悪化させない注意点をまとめます。
「�」は読めなかったバイトの代わりに出る記号
「�」はUnicodeのU+FFFD(置換文字)という記号で、ソフトがバイトを文字として読めなかったときに、その代わりに表示されます。文字コードの決まりに合わないバイトの並びが出てきたとき、ソフトは読めなかった所を「�」に置き換えて先へ進みます。
よく見るのは、UTF-8の日本語をShift_JISで開いたときです。UTF-8のひらがな・漢字は1文字3バイト、Shift_JISは2バイトずつ区切って読むので、区切りがずれていきます。ずれた結果、Shift_JISに存在しないバイトの組み合わせになった所や、最後に1バイトだけ余った所が「�」になります。「文字化け」なら「譁�ュ怜喧縺�」、「会議の資料」なら「莨夊ュー縺ョ雉�侭」です。
「�」が交じっていても推測で補える仕組み
UTF-8には、「先頭のバイトで何バイトの文字かが決まり、続きのバイトは80〜BFの範囲」という決まった形があります。化けた文を逆にたどると、「この文字は3バイトのうち2つ目が欠けている」のように、欠けたバイトの数と位置が分かります。さらに、Shift_JISで読んだときに本当に「�」になるバイトだけに候補を絞れます。
残った候補を1つずつ当てはめて、日本語として自然な文字(よく使う漢字やひらがな)になるものを選ぶのが、文字化け 復元・解読ツールの補い方です。実際に試すと次のようになりました。
| 化けた文字 | 補った結果 | 補った文字 | ほかの候補の例 |
|---|---|---|---|
| 莨夊ュー縺ョ雉�侭 | 会議の資料 | 資料 | 賃料・賄料 |
| 螻ア逕ー螟ェ驛�,譚ア莠ャ驛ス蜊�サ」逕ー蛹コ | 山田太郎,東京都千代田区 | 郎・千代 | — |
| 譏取律縺ョ莨夊ュー縺ョ雉�侭繧帝√j縺セ縺吶ゅh繧阪@縺上♀鬘倥>縺励∪縺吶� | 明日の会議の資料を送ります。よろしくお願いします。 | 資料・。 | — |
| 譁�ュ怜喧縺� | 文字化た | 文字・た(本当は「け」) | い・か・す・け |
最後の例のように、文の終わりの1文字は前後の手がかりが少なく、外れることがあります。補った文字は黄色で示され、押すとほかの候補に入れ替えられるので、文脈に合わないものは選び直してください。文が長いほど手がかりが増えて、当たりやすくなります。
戻せない文字化けの見分け方
推測で補えるのは、化けた文字の大部分に元のバイトが残っているときだけです。次のような状態は、元の情報が失われているので戻せません。
- 「?????」のように「?」ばかり:文字コードを変換して保存したときに、表せない文字が「?」に置き換えられた。元の文字の情報は残っていない
- 「�」ばかり(「������」など):Shift_JISやUTF-8の文章をEUC-JPで読んだときに多い。ほぼすべてのバイトが「�」になり、残っていない
- 「�e�X�g」のように英数字と「�」が交互:2バイトのうち1バイト目が失われ、残っているのは2バイト目だけ(この例は「テスト」)
- 「譁・ュ怜喧縺・」のように「・」が交じる:Excelなどが「�」の代わりに「・」で表示し、そのまま保存・コピーされた。本物の「・」と区別がつかないので補えないことが多い
ツールで戻せなかった文字は、ゲタ記号「〓」で示します。〓が多いときは、化けた文字から戻すのはあきらめて、元のファイルやメールを手に入れて正しい文字コードで開き直すのが確実です。
2回化けた文字化けと「�」
一度化けた文章を保存し、それをまた別の文字コードで読むと、2回化けた文字化けになります。たとえば、UTF-8をShift_JISで読んで化けた「譁�ュ怜喧縺�」をUTF-8で保存し、それをLatin-1で読むと「èï¿½ï½æ€œå–§ç¸ºï¿½」になります。
「�」は「�」をUTF-8で保存したバイト(EF BF BD)をLatin-1で読んだもので、2回化けたしるしです。ツールは2回分の化け方も総当たりで試すので、この例も「文字化た」まで戻り、最後の1文字を候補から選び直せば元の文になります。ただし3回以上化けたものや、途中で「?」に置き換わったものは戻せないことがあります。
文字化けを悪化させないための注意
- 1
化けたまま上書き保存しない
化けて表示されているファイルを保存すると、「�」の所の元のバイトが失われます。気づいたら保存せずに閉じ、文字コードを指定して開き直します。
- 2
元のファイルやメールを残しておく
変換や修正をするときは、元のファイルをコピーしてから作業します。元があれば、化けた文から推測しなくても確実に戻せます。
- 3
「�」も含めてそのまま貼り付ける
化けた文をツールに貼るときは、「�」を消したり、読める部分だけを抜き出したりしないでください。「�」の位置が補うための手がかりになります。
どの文字コードの取り違えで化けたかは、文字化けのパターン早見表で確かめられます。CSVをExcelで開いて化けたときは、CSVがExcelで文字化けするときの直し方の手順で開き直すと、「�」を推測するまでもなく元の文字が読めます。
よくある質問
- 文字化けの「�」は何ですか?
- UnicodeのU+FFFD(置換文字)で、ソフトがバイトを文字として読めなかった所に表示される記号です。文字コードを取り違えて開いたときに、決まりに合わないバイトの並びが「�」に置き換えられます。
- 「�」が交じった文字化けは元に戻せますか?
- UTF-8をShift_JISで開いたときの「�」なら、多くの場合は推測で補えます。欠けたのは1文字につき1バイト程度で、UTF-8の決まりから候補を絞れるためです。ただし文の終わりなど手がかりの少ない所は外れることがあります。
- 「?」に変わった文字は戻せますか?
- 戻せません。文字コードを変換して保存したときに、表せない文字が「?」に置き換えられ、元の文字の情報が残っていないためです。元のファイルがあれば、そちらを正しい文字コードで開き直してください。
- 「�」という文字化けは何ですか?
- 「�」をUTF-8で保存したバイト(EF BF BD)を、Latin-1(Windows-1252)で読んだものです。一度化けた文章がさらにもう一度化けた(2回化けた)しるしで、2回分を逆にたどれば戻せることがあります。
この記事で紹介したツール
あわせて読みたい
CSVがExcelで文字化けするときの直し方|UTF-8(BOM付き)とShift_JISの使い分け
Webサービスからダウンロードした CSV をダブルクリックで Excel で開いたら、「豌丞錐,菴乗園」のように文字化けしていた。これは CSV の中身が壊れているのではなく、Excel が文字コードを取り違えて読んだだけです。この記事では、化ける理由、いま開いている CSV を読める形で開く方法、次から化けない保存の仕方(UTF-8 BOM付き・Shift_JIS)、変換するときに消える文字の注意点をまとめます。
記事を読む →髙(はしごだか)・﨑(たつさき)・𠮷(つちよし)の出し方と文字化けする理由
髙橋さんの「髙」、山﨑さんの「﨑」、𠮷田さんの「𠮷」。名前でよく見るこの 3 つの字は、Web フォームに入力すると「使えない文字です」と断られたり、届いたメールや CSV で「?」になったりしがちな、文字化けの常連です。この記事では、3 つの字の正体(機種依存文字と Shift_JIS にない字の違い)、Windows・Mac・iPhone・Android・Word・Excel での出し方、どんな場面でなぜ化けるのか、名前を正しく扱いたいときと、化けさせたくないときそれぞれの対処法をまとめます。
記事を読む →渡辺・渡邊・渡邉の違い|「辺」の異体字は何種類?出し方と宛名での使い分け
ワタナベさんの名前を書こうとして、「辺」「邊」「邉」のどれだったか迷った経験はないでしょうか。渡辺は日本でもっとも多い名字のひとつで、しかも「辺」の字の形がとても多いことで知られています。この記事では、辺・邊・邉の関係と見分け方、戸籍には数十種類の形があると言われる理由、パソコン・スマホでの出し方、宛名や名簿でどの字を使えばよいか、文字化けや検索漏れを防ぐコツまでをまとめます。
記事を読む →