仕組み解説公開日 読了目安 約8分

文字化けのパターン早見表|縺・ã・‚ƒ・$B から原因の文字コードを見分ける

「縺薙s縺ォ縺。縺ッ」「日本語」「‚±‚ñ‚É‚¿‚Í」のような文字化けは、でたらめに見えて実は規則どおりに化けています。最初に出てくる文字を見れば、どの文字コードをどれと取り違えたのかがほぼ分かります。この記事では、よく見る化け方7通りを例つきの早見表にまとめ、それぞれが起きる理由と、戻せる化け方・戻せない化け方の見分け方を説明します。

文字化けは「保存した文字コード」と「読んだ文字コード」のずれ

パソコンの中の文字は、すべて数字(バイト)の並びとして保存されています。どの文字をどの数字で表すかの決まりが文字コードで、日本語ではUTF-8・Shift_JIS・EUC-JP・JIS(ISO-2022-JP)の4つがよく使われます。たとえば「あ」は、UTF-8ではE3 81 82の3バイト、Shift_JISでは82 A0の2バイトです。

文字化けは、ある文字コードで保存したバイトを、別の文字コードの決まりで読んだときに起きます。中身のバイトは壊れておらず、読み方を間違えているだけなので、多くの場合は「間違えて読んだ文字コード」でバイトに戻し、「本来の文字コード」で読み直せば元の文章に戻ります。

よく見る7通りの化け方の早見表

次の表は、文字化け 復元・解読ツールで実際に化けさせた結果です。左の「目印の文字」が多く出ていたら、その行の取り違えを疑ってください。

目印の文字本来の文字コード間違えて読んだ文字コード「こんにちは」の化け方戻せるか
縺・繧・繝・譁・スUTF-8Shift_JIS縺薙s縺ォ縺。縺ッほぼ戻せる(�は推測で補う)
ã・æ・å・è・â€UTF-8Latin-1(Windows-1252)ã“ã‚“ã«ã¡ã¯戻せる
‚・ƒ・Œ・“・•Shift_JISLatin-1(Windows-1252)‚±‚ñ‚É‚¿‚Í戻せる
、・・・ニ・マEUC-JPShift_JIS、ウ、ヒ、チ、マほぼ戻せる
¤・¥・Ê・ÆEUC-JPLatin-1(Windows-1252)¤³¤ó¤Ë¤Á¤Ï戻せる
$B…(BJIS(ISO-2022-JP)ESCの記号が消えた$B$3$s$K$A$O(B戻せる
�ばかりShift_JIS・UTF-8EUC-JP(�が並ぶ)ほとんど戻せない

ほかの言葉では、「日本語」はUTF-8→Latin-1で「日本語」、Shift_JIS→Latin-1で「“ú–{Œê」、「テスト」はShift_JIS→Latin-1で「ƒeƒXƒg」、「東京都」はUTF-8→Shift_JISで「譚ア莠ャ驛ス」、「文字化け」はEUC-JP→Latin-1で「ʸ»ú²½¤±」になります。

「縺」「繧」「譁」:UTF-8をShift_JISで開いた

いちばんよく見る化け方です。UTF-8で保存されたCSVをExcelでそのまま開いたとき、古いWindowsのソフトやメモ帳で開いたとき、Shift_JIS前提の業務システムにUTF-8のデータを取り込んだときに起きます。

  • ひらがなが多い文は「縺」だらけになる(ひらがなの多くはUTF-8でE3 81かE3 82から始まり、Shift_JISではそれぞれ「縺」「繧」と読まれる)
  • カタカナが多いと「繝」が目立つ(カタカナの多くはE3 83から始まる)
  • 漢字は「譁」「莨」「螻」など、ふだん見ない漢字に化ける
  • UTF-8は1文字3バイト、Shift_JISは2バイトで区切るので、区切りがずれた所が「�」や「・」になる

「譁�ュ怜喧縺�」(文字化け)のように「�」が交じるのがこの化け方の特徴です。「�」の所は元のバイトが1つ失われていますが、UTF-8の決まりから欠けたバイトの数と位置は分かるので、ツールでは日本語として自然な文字を推測して補います。詳しくは「�」で欠けた文字化けは戻せるかで説明しています。

「ã」「æ」「‚」「ƒ」:海外製のソフトで開いた

アクセント付きのアルファベットや記号ばかりになるのは、日本語を西ヨーロッパ向けの文字コード(Latin-1、正確にはWindows-1252)で読んだときです。海外製のメールソフトやCMS、データベースの文字コード設定が違うWordPress、英語版のソフトで起きやすい化け方です。

  • 「ã」で始まる文字が多い→UTF-8のひらがな・カタカナ(先頭がE3)。「æ」「å」「ä」「è」「é」「ç」はUTF-8の漢字(先頭がE4〜E9)
  • 「â€」が目立つ→UTF-8の記号(「…」「“」「–」など先頭がE2のもの)
  • 「‚」が多い→Shift_JISのひらがな(先頭が82)。「ƒ」はカタカナ(先頭が83)
  • 「¤」「¥」が多い→EUC-JPのひらがな(先頭がA4)・カタカナ(先頭がA5)

この化け方は、Latin-1が256通りのバイトのほぼすべてに文字を割り当てているので、元のバイトがそのまま残っていて戻しやすいのが特徴です。ただし、Windows-1252で文字が割り当てられていない数バイト(81・8D・8F・90・9D)は目に見えない制御文字になり、コピーしたときに落ちることがあります。「ã“ã‚“ã«ã¡ã¯」も、実は「ã」と「“」の間に見えない文字があります。落ちた所は、ツールが位置を割り出して補います。

「、」「$B」:古いサーバーやメールの文字コード

半角の「、」「ウ」「ヒ」などが交互に並ぶのは、EUC-JPの文章をShift_JISで読んだときです。EUC-JPは昔のLinux・UNIXのサーバーや掲示板、古いPerlのCGIで使われていました。古いホームページのログやメールのアーカイブを開くと出会います。

「$BJ8;z2=$1(B」のように「$B」と「(B」で囲まれた英数字になるのは、JIS(ISO-2022-JP)の文章から、切り替えの合図であるESC(制御文字)が抜け落ちたときです。日本語のメールはこの文字コードで送られてきたので、古いメールを別のソフトに移したり、テキストとしてコピーしたりすると起きます。「$B」と「(B」の間を2文字ずつ読めば元に戻せます。メールの件名に関する化け方はメールの件名・本文の文字化けでまとめています。

化け方が分かったら、どう戻すか

  1. 1

    元のファイルがあるなら、開き直すのが確実

    化けたのが表示だけなら、エディタやブラウザで文字コードを指定して開き直せば元に戻ります。化けた状態で上書き保存すると、「�」の所の情報が失われて戻せなくなるので、保存の前に気づくことが大切です。

  2. 2

    化けた文字しか手元にないなら、貼り付けて戻す

    メールの本文や画面のコピーしかないときは、文字化け 復元・解読ツールに貼り付けます。7通りの取り違えと、2回化けたもの(たとえばUTF-8→Shift_JISで化けた文をさらにLatin-1で読んだもの)を総当たりして、日本語として読めるものから並べます。

  3. 3

    推測で補った文字を確かめる

    「�」から補った文字は黄色で示されます。短い文では推測が外れることがあるので、前後の文脈に合わない文字は押してほかの候補に入れ替えてください。

CSVをExcelで開いたときの化けは、CSVがExcelで文字化けするときの直し方の手順で、次から化けない形で保存し直せます。「%E3%81%82」や「\u3042」のような文字は化けているのではなく、符号のまま見えている状態です。こちらは%E3・\u3042・\343の読み方を参考にしてください。

よくある質問

「縺」「繧」だらけの文字化けの原因は何ですか?
UTF-8で保存された日本語をShift_JISとして開いたことが原因です。UTF-8のひらがなは多くがE3 81やE3 82から始まり、Shift_JISではそれが「縺」「繧」と読まれます。UTF-8で開き直すか、化けた文字をUTF-8として読み直せば戻ります。
「ã」や「â€」が並ぶ文字化けは何ですか?
UTF-8の日本語や記号を、Latin-1(Windows-1252)として表示したときの化け方です。海外製のソフトやデータベースの文字コード設定の違いで起きます。元のバイトがほぼそのまま残っているので、多くは元に戻せます。
文字化けはどれでも元に戻せますか?
化けた文字に元のバイトが残っていれば戻せます。UTF-8→Shift_JIS、UTF-8→Latin-1、Shift_JIS→Latin-1、EUC-JP→Shift_JIS、ESCの抜けたJISなどは戻せます。一方、EUC-JPとして読んで「�」ばかりになったものや、「?」に置き換えて保存したものは元に戻せません。
文字化けした状態で保存してしまいました。もう戻せませんか?
化けた文字のまま保存した場合でも、文字自体が残っていれば、化け方を逆にたどって戻せることがあります。ただし保存の時点で「�」や「?」に置き換わった文字は、その所だけ情報が失われています。

この記事で紹介したツール

あわせて読みたい

仕組み解説約8分

%E3%81%82・\u3042・\343の読み方|URL・JSON・gitで日本語が符号になる理由

URLをコピーしたら「%E6%96%87%E5%AD%97」、APIの返り値を見たら「\u6587\u5b57」、gitのファイル名が「\346\226\207」。どれも文字化けに見えますが、日本語が壊れたのではなく、日本語のバイトや番号を英数字で書き表した「符号」のまま見えている状態です。この記事では、よく見る9種類の書き方の見分け方と読み方、どこで出てくるのか、表示を日本語にする設定をまとめます。

記事を読む →
仕組み解説約8分

メールの件名が文字化けする原因と直し方|=?UTF-8?B?・=?ISO-2022-JP?B?・$Bの読み方

受け取ったメールの件名が「=?UTF-8?B?5paH5a2X…?=」のような英数字になっていたり、本文が「$BL@F|$N…(B」になっていたりすることがあります。これはメールで日本語を送るための決まった書き方が、そのまま見えている状態です。この記事では、件名の=?…?=の仕組み、B方式とQ方式の違い、JISメールの$B、本文の文字化けの原因と、送る側でできる対策をまとめます。

記事を読む →
仕組み解説約8分

「�」「?」の文字化けは戻せる?|欠けた文字の復元と、戻せない文字化けの見分け方

文字化けした文に「�」(黒いひし形に?)が交じっていると、もう戻せないと思いがちです。実は「�」の所で失われたのは多くの場合1バイトだけで、文字コードの決まりと前後の文脈から、元の文字をかなりの確率で推測できます。一方、「?」や「・」に置き換わって保存されたもの、「�」ばかりの文字化けは戻せません。この記事では、「�」が出る理由と推測で補える仕組み、戻せる・戻せないの見分け方、文字化けを悪化させない注意点をまとめます。

記事を読む →