文字化けの修復 — 壊れているのは文字ではなく札です
「ã‚ãりãŒã¨ã†」のようにラテン文字の羅列になった日本語を元に戻します。この化け方はデータが壊れたのではなく読む側が取り違えているだけなので、読み直せば元の文章がそのまま戻ります。
文字化けが起きる場面は決まっています。文字コードを指定せずに読み込まれたCSV、別のパソコンで作られたZIPを展開したときのファイル名、設定を間違えたデータベースの書き出し、メールの件名。
このうちこのツールが戻せるのは、UTF-8のバイト列がLatin-1(西欧向けの文字コード)として読まれた場合です。中身のバイトは無事で札だけが違うので、付け直せば推測ではなく元の文章そのものが戻ります。「ありがとう」なら「ã‚ãりãŒã¨ã†」の形です。
直せる化け方と、直せない化け方
戻せるのはLatin-1として読まれた場合だけです。日本語なら「ã‚ã」、韓国語なら「순녕」のようにラテン文字と記号が並びます。バイトが全部残っているので元通りになります。
戻せないのは二つです。ひとつは「縺ゅ%」のようにShift_JISとして読まれた場合で、文字として見えている時点でLatin-1の範囲を超えており、元のバイトをこのツールからは取り出せません。もうひとつは読めなかった文字が「?」や「□」に置き換えられた場合で、こちらは元のバイトが消えているのでどんな道具でも復元できません。どちらも元のファイルを正しい文字コードで開き直すのが確実です。
このツールは、入力が修復できる形でないと判断したときは何も変えずに返します。当てずっぽうで「直した」結果を出すと、読める文章が読めない文字列に変わってしまうからです。
見た目でわかる化け方
| 見た目 | 原因 | 対処 |
|---|---|---|
| ã‚ãり のようなラテン文字の羅列 | UTF-8をLatin-1として読んだ | このツールで戻る |
| 縺ゅ% のような見慣れない漢字とカナ | UTF-8をShift_JISとして読んだ | このツールでは戻せない。元ファイルを開き直す |
| ??? や □□□ | 読めない文字が置換された | 元データから取り直すしかない |
| 半角カナが全角に見える | 正規化の違い | 正規化の形式(NFC/NFKC)を変えてみる |
そもそも起こさないために
ExcelでCSVを開くときは、ダブルクリックせず「データ」タブから文字コードを指定して読み込むと化けません。書き出すときは、UTF-8にBOMを付けた形式にするとExcelが正しく認識します。
Webページで化ける場合は、HTMLの先頭で文字コードを宣言しているか確認してください。宣言がないと、ブラウザが推測で決めてしまいます。
ファイル名の化けは、ZIPを作った側の環境に依存します。日本語のファイル名を含むZIPを配るなら、名前を英数字にしておくのが確実です。
このツールでできること
- •文字化けの修復のほか、Unicodeの正規化(NFC・NFD・NFKC・NFKD)も選べます。見た目が同じでも内部の表現が違う文字を揃えるのに使います。
- •検索しても引っかからない、並べ替えの順序がおかしい、といった症状は正規化で直ることがあります。
- •結果はコピーするか、テキストファイルとして保存できます。
- •入力した文章はブラウザの中だけで処理されます。送信も保存もされません。
よくある質問
何も変わらないのですが。
このツールが扱う化け方ではない可能性があります。戻せるのはラテン文字の羅列になった場合だけで、「縺ゅ%」のような形や「?」「□」に置き換わった場合は対象外です。
Shift_JISのファイルを開けますか?
このツールはテキストを貼り付けて直す道具です。ファイルの文字コードそのものを変換したい場合は、テキストエディタで文字コードを指定して開き直してください。
正規化はどれを選べばよいですか?
迷ったらNFCです。保存や比較の標準として広く使われています。全角と半角を揃えたい場合はNFKCですが、元の区別が失われる点に注意してください。
貼り付けた文章は保存されますか?
保存されません。処理はすべてブラウザの中で行われます。
