あ文字化けレスキューTEXT REPAIR
← 修復ツールへ
文字化けのしくみ

同じデータでも、
読み方が違うと文字が変わる。

「縺薙s縺ォ縺。縺ッ」や「café」。これは、文字のデータを違うルールで読んでしまったときに起こることがあります。

01 / HOW IT HAPPENS

文字は「数値の並び」で保存される

コンピューターは、見えている文字の形をそのまま保存するわけではありません。文字をバイトという数値の並びに変えて保存します。その変換ルールが「文字コード」です。

たとえば「é」はUTF-8では C3 A9 という2つのバイトになります。これを別のルールであるWindows-1252で読むと、それぞれが別の文字に対応するため「é」と表示されます。

元の文字café
→
UTF-8で保存63 61 66 C3 A9
→
違うルールで読むcafé

ファイルのデータが残っていれば、正しいルールで読み直すことで元の文字が見える場合があります。日本語でも、UTF-8とShift_JISなどの組み合わせで同じことが起きます。

参考:W3C「Character encodings for beginners」、WHATWG Encoding Standard

02 / EXAMPLES

英語やプログラムでも起こる

基本的な半角英数字はUTF-8とWindows-1252などで共通するため、その部分だけなら文字化けしにくい傾向があります。一方、アクセント付き文字、曲がった引用符、長いダッシュなどは読み違いが起こります。UTF-16の読み違いでは、基本的な英数字でも正しく表示されないことがあります。

対象文字化けの例修復候補
日本語縺薙s縺ォ縺。縺ッこんにちは
英語・欧文cafécafé
英語の引用符It’s ready!It’s ready!
コード内のコメント// café menu// café menu

JavaScriptやPythonなどのソースコードもテキストです。コメントや文字列の文字化けは修復候補を探せます。ただし、削除されたコード、構文エラー、実行ファイルの破損を直す機能ではありません。

サンプルを修復ツールで試す →
03 / RECOVERY LIMITS

「読み違い」と「情報の消失」は違う

元のデータが残っている

違う文字コードで表示しているだけなら、正しく読み直せる可能性があります。文字化けが別の文字として保存された場合も、変換の経路を逆にたどれることがあります。

元の文字の情報が失われている

複数の異なる文字が同じ「�」や「?」に置き換わって保存されると、それだけでは元の文字を特定できません。このツールは文脈から文字を作り足しません。

画面に「�」が見えても、元ファイルまで壊れているとは限りません。表示の段階で置き換わっただけなら、元ファイルを正しく読み直せる場合があります。コピーした文章ではなく、受け取ったファイルを試してください。

四角い箱が表示される場合は、文字コードではなくフォント不足が原因のこともあります。もともとの「?」は普通の疑問符なので、消したり置き換えたりする必要はありません。

04 / WHAT TO DO

文字化けしたら、上書きする前に

  1. 元ファイルを残す。文字化けした状態で保存し直さず、コピーを作ります。
  2. ファイルを添付して読み直す。元ファイルがない場合は、文字化けした文章を貼り付けます。
  3. 候補を比べる。自動推定が合わない場合は、送り手や作成アプリで文字コードを確認して指定します。
  4. 別名で保存し、使うアプリで確認する。ソースコードは差分、文字コードの宣言、動作も確認します。
05 / PREVENTION

保存するときと、読むときのルールをそろえる

新しいテキストやウェブページでは、できるだけUTF-8で統一すると扱いやすくなります。保存、送信、データベース、読み込みの各段階で同じ文字コードを使うことが大切です。

HTMLなら <meta charset="utf-8"> の宣言だけでなく、ファイル自体もUTF-8で保存します。宣言を書き換えるだけでは、ファイルのバイト列は変わりません。サーバーの応答で指定する文字コードも合わせます。

CSVは、読み込み側で文字コードを選べる機能を使うと確実です。UTF-8のBOMが判別に役立つアプリもあります。プログラムファイルではBOMが不要なこともあるため、実行環境に合わせて選びます。

参考:W3C「Choosing & applying a character encoding」、W3C「Declaring character encodings in HTML」

元の内容を残したまま、試してみる。

無料で利用できます。テキストとファイルの内容は、このブラウザー内で処理します。

修復ツールを使う →