調べて分かる道具箱

文字化けの復元

化けた文章を貼り付けると、考えられる直し方を並べます。戻せない文字はその数も出します。

いちばん当てはまりそうな直し方テヲ窶凪�。テ・ツュ窶氾・ナ停�禿」窶佚」窶氾」ナクテヲ窶凪�。テァツォ テ」窶壺�凖」窶愿」窶愿」ツォティツイツシテ」窶塲�テ、ツサヒ愿」窶佚」ツセテ」邃「

Shift_JIS の文章を UTF-8 として読んだ形です。Shift_JIS のファイルを UTF-8 だと思って開いた場合 ただし 5文字 が「�」のままです。 その部分は貼り付けの時点で失われています。

ほかの候補

上が外れているときは、こちらを見てください。並びは当てはまりそうな順です。

EUC-JPShift_JIS として読んだ「�」が2文字
�e� fgge
Shift_JISEUC-JP として読んだ「�」が1文字
「ニ「� 。ヌ。ネ。ネ。ニ
EUC-JPUTF-8 として読んだ「�」が20文字
脱�€“�€|ヂ№€”奪�’�€“達�€˜達�€”達展脱�€“�€|�� 達�€š�€™達�€œ達�€œ達束竪族村達�€š�辰損�œ達�€˜達他達�„�
UTF-8EUC-JP として読んだ「�」が6文字
���Ƣ� �ǡȡȡ�
UTF-8Shift_JIS として読んだ「�」が9文字
���e�� �f�g�g�e

よくある質問

なぜ文字化けは起きるのですか?

文字を保存するときに使った決まり(文字コード)と、読むときに使った決まりが食い違うためです。文字はいったんバイトの並びになって保存されますが、同じバイトの並びでも、どの決まりで読むかによって別の文字になります。だから直し方も決まっていて、化けた文字列を読むときに使われた決まりでバイトに戻し、正しい決まりで読み直せば元に戻ります。

戻らない文字があるのはなぜですか?

化けた時点で、その文字のバイトが捨てられているためです。読むときに使った決まりで解釈できないバイトがあると、多くのソフトはそこを「�」という記号に置き換えます。置き換えた時点で元のバイトは消えているので、画面に出ている「�」からは何も復元できません。「�」は化けた文字ではなく、文字が失われた跡です。この道具は、その数を数えて先にお伝えします。

どの化け方なら完全に戻りますか?

UTF-8 の文章を Windows-1252 として読んでしまった型です。「文字化ã‘」のような形になります。この決まりは1バイトが必ず1文字に対応するので、バイトがひとつも失われません。海外製のソフトやメール、CSV でよく起きる型で、実際にいちばん多いものでもあります。逆に「譁?ュ怜喧縺」のような形は、Shift_JIS として読めなかったバイトがすでに捨てられているため、完全には戻りません。

候補がいくつも出るのはなぜですか?

どの決まりの取り違えで化けたのかは、化けた文字列だけからは確実には決められないためです。1つだけ返す作りにすると、外れたときに利用者が打つ手を失います。当てはまりそうな順に並べて、それぞれ何文字戻せなかったかを添えているので、読める候補を選んでください。

貼り付けた文章はどこかに送られますか?

送られません。変換はすべてこの画面の中(お使いの機器の中)で行っています。文章がこの機器から出ることはないので、未公開の原稿や社内の文書でもそのまま貼り付けられます。

文字化けは「読み方の取り違え」で起きています

文字は、保存されるときにいったんバイトの並びになります。 どの文字をどのバイトにするかを決めているのが文字コードで、 UTF-8・Shift_JIS・EUC-JP などいくつもあります。

同じバイトの並びでも、読むときに別の決まりを当てると別の文字になります。 たとえば「文字」を UTF-8 で保存するとE6 96 87 E5 AD 97 という6バイトになりますが、 これを Windows-1252 という決まりで読むと1バイトずつ別の文字に割り当てられ、文字 と表示されます。化けたのではなく、同じバイトを別の決まりで読んだだけです。

だから直し方も決まっています。 画面の文字を「読むときに使われた決まり」でバイトに戻し、正しい決まりで読み直す。 この道具がやっているのはそれだけです。

「�」が出ていたら、そこはもう戻りません

読むときに使った決まりで解釈できないバイトがあると、 多くのソフトはそこを「�」(U+FFFD)という記号に置き換えます。 置き換えた時点で、元のバイトは捨てられています。

つまり画面に出ている「�」は、化けた文字ではなく、文字が失われた跡です。 跡からは元のバイトを知りようがないので、どんな道具を使っても復元できません。 「文字化け 復元」で見つかる道具の多くはここを説明せず、 欠けたままの文を「変換しました」と返します。

戻したい文章がまだ元のファイルとして残っているなら、画面の文字ではなくファイルから開き直すのが確実です。 エディタで文字コードを指定して開き直せば、バイトは失われていないので完全に戻ります。

よくある化け方の見分け

見た目から、どの取り違えかを当てる
見た目何が起きたか
文字化ã‘アルファベットに記号が付いた形UTF-8 を Windows-1252 として読んだもの。完全に戻せます。海外製のソフトやメールで多い
譁?ュ怜喧縺見慣れない漢字と半角カナが混ざるUTF-8 を Shift_JIS として読んだもの。読めなかったバイトが捨てられているので、 完全には戻りません
????????記号だけが並ぶ日本語のバイト列を UTF-8 として読んだもの。 ほとんどのバイトが捨てられているので、まず戻りません
 が先頭に付く1行目の頭だけおかしいBOM という目印が文字として読まれたもの。先頭の3文字を消すだけで直ります