テキスト

文字化けの仕組みと直し方|文字コードとは・UTF-8とShift_JISの違い

「譁・ュ怜喧縺」のような意味不明の記号が並ぶ文字化け。原因は「書いたときの文字コード」と「読むときの文字コード」のズレにあります。本記事では文字コードの仕組みから、文字化けが起きるメカニズム、CSVがExcelで化ける典型例、そして実際の直し方までを順を追って解説します。

公開: 2026-10-16

ダウンロードしたCSVをExcelで開いたら日本語がすべて崩れていた——こうした「文字化け」は誰もが一度は経験するトラブルです。原因不明に見えますが、その正体はとてもシンプルで、「保存したときのルール」と「読み込むときのルール」が食い違っているだけです。仕組みを理解すれば慌てず対処でき、そもそも起きにくくできます。この記事では文字コードの基礎から直し方までを順に解説します。

文字化けとは何か

文字化けとは、本来表示されるべき文字が、別の記号や読めない文字列に変換されて表示される現象です。「繧ィ繝ゥ繝シ」「□□□」「?????」など見た目はさまざまですが、根っこの原因は共通しています。

コンピュータは文字を直接扱わず、内部ではすべての文字を「数値(番号)」に置き換えて保存し、読み込むときは番号を文字に戻して表示します。このとき「どの番号がどの文字に対応するか」を定めたルールが文字コードです。保存時と読み込み時で異なるルールを使うと、同じ番号でも別の文字として解釈され、文字化けが発生します。

文字コードの基本(UTF-8・Shift_JIS・EUC-JP)

日本語環境でよく登場する文字コードは、主に次の3つです。

UTF-8

現在、世界で最も広く使われている文字コードです。世界中のほぼすべての文字を一つの体系で表せる「Unicode」を効率よくデータ化する方式の一つで、Webやスマートフォン、最近のアプリのほとんどが標準としています。半角英数字は1バイト、日本語の漢字やかなは通常3バイトで表されます。迷ったらUTF-8、が現代の基本方針です。

Shift_JIS(シフトJIS)

主にWindowsで古くから使われてきた日本語向けの文字コードです。Windowsの一部機能やExcel、古いソフト、レガシーな業務システムでは今もShift_JIS(またはその拡張のCP932)が使われています。文字化けの原因として最も頻繁に絡むのが、このShift_JISとUTF-8のズレです。

EUC-JP

かつてUNIX系システムや一部のWebサイトで使われた日本語向けの文字コードです。現在は新規利用が減りましたが、古いサーバーやデータ、過去のメールで遭遇します。

同じ日本語でも保存方式が複数あるため、保存側と読み込み側で方式を合わせる必要があります。

なぜ文字化けが起きるのか

文字化けの原因は煎じ詰めれば一つ、保存時と読み込み時の文字コードが一致していないことです。具体的には次のパターンで起こります。

  • UTF-8のファイルをShift_JISとして開いた:日本語が「譁・ュ怜喧」のような漢字とカナの混じった記号列になります。
  • Shift_JISのファイルをUTF-8として開いた:「�」や「□」といった置換記号が並びます。
  • メールの文字コード指定が中身と違う:送信側と受信側の解釈がずれて化けます。
  • フォントに該当する文字が無い:文字コードは合っていてもフォントがその文字を持たないと「□(豆腐)」になります。原因は少し異なりますが見た目は似ています。

つまり文字化けした文字列が壊れているとは限りません。多くの場合データは無事で、「読み方」を指定し直せば元に戻せます。これが文字化けを直せることが多い理由です。

CSVがExcelで化ける典型例

文字化けの相談で特に多いのが、CSVをExcelで開いたときの化けです。近年のWebサービスが書き出すCSVは世界標準のUTF-8が増えている一方、WindowsのExcelはダブルクリックで開くとファイルをShift_JIS(CP932)として解釈しようとする挙動が長く続いてきました。その結果、UTF-8のCSVをExcelがShift_JISだと思い込んで開き、日本語が崩れるのです。データが壊れているのではなく、解釈する文字コードを間違えているだけです。対処は主に二つあります。

  1. Excel側で文字コードを指定して開く:「データ」タブの「テキストまたはCSVから」を使い、読み込み時に元の文字コードを選べば正しく表示できます。
  2. ファイル側の文字コードを変換する:CSVをあらかじめShift_JIS(CP932)に変換しておけば、ダブルクリックでもそのまま開けます。逆にUTF-8前提のシステムへ渡すならUTF-8へ変換します。相互変換には文字コード変換ツールが役立ちます。

なお、先頭に「BOM」という目印を付けた「UTF-8 with BOM」で保存すると、ExcelがUTF-8と自動認識して正しく開けることがあります。

文字化けの直し方と変換の方法

すでに文字化けしたテキストを元に戻すには、状況に応じて次を試します。

1. 読み込み側の文字コードを切り替える

ブラウザやテキストエディタには表示用の文字コードを変更する機能があります。化けたページやファイルをUTF-8・Shift_JIS・EUC-JPと切り替え、正しく読める設定を探すのが最も確実です。

2. 文字化けした文字列を修復する

メール本文や貼り付けたテキストなど、ファイル単位で切り替えられない場面では、化けた文字列だけを修復したいことがあります。そのときは文字化け修復ツールに化けたテキストを貼り付け、想定される文字コードの組み合わせを試すと、元の日本語に復元できる場合があります。「UTF-8をShift_JISとして読んでしまった」という典型パターンを逆算して戻すイメージです。逆に、渡す相手のシステムに合わせて事前に文字コードをそろえたいときは、前述の文字コード変換ツールで保存形式を統一します。

3. 半角・全角やかなの揺れも整える

文字化けそのものではありませんが、データ受け渡しでは半角カナや全角・半角の表記揺れも崩れの原因になりがちです。表記を整えたい場合はかな変換ツールで統一しておくと安全です。

文字化けを防ぐコツ

最後に、文字化けを起こさないためのポイントをまとめます。

  • 迷ったらUTF-8で統一する:新規ファイルやシステムは、特別な理由がなければUTF-8が現代の基本。全員が同じ方式なら化けません。
  • 相手の環境を確認する:Excel前提のCSVなら、Shift_JISやBOM付きUTF-8など受け取る側の標準に合わせます。
  • 文字コードを明示する:Webページやメールで文字コードを正しく宣言すると、受け手のソフトが誤解しにくくなります。
  • 変換は専用ツールで行う:手作業のコピーや再入力はミスのもと。変換や修復は専用ツールで確実に処理します。

文字化けは深刻なデータ破損のように見えますが、その多くは「読み方の指定ミス」にすぎません。文字コードの仕組みを押さえておけば、原因を切り分けて適切なツールで元に戻せます。

よくある質問

文字化けしたデータはもう元に戻せませんか?

多くの場合は元に戻せます。文字化けはデータ自体が壊れているのではなく、保存時と読み込み時の文字コードがずれているだけのことがほとんどだからです。読み込む文字コードを正しく指定し直すか、文字化け修復ツールで想定される変換の組み合わせを試すと、元の文字に復元できることが多いです。ただし複数回変換され情報が失われた場合は、完全には戻せないこともあります。

UTF-8とShift_JISはどちらを使えばよいですか?

特別な理由がなければUTF-8をおすすめします。Webやスマートフォン、最近のアプリの標準であり、世界中の文字を扱えるためです。ただし、WindowsのExcelでダブルクリックして開くCSVや、古い業務システム向けのデータでは、Shift_JIS(CP932)が求められることがあります。相手の環境に合わせて選びましょう。

なぜCSVをExcelで開くと文字化けするのですか?

Webサービスが書き出すCSVはUTF-8が多い一方、WindowsのExcelはダブルクリックで開くとShift_JISとして解釈しようとするためです。データは壊れていないので、Excelの「データ」タブから文字コードを指定して読み込むか、ファイルをShift_JISやBOM付きUTF-8に変換しておけば正しく開けます。

「□」や「?」が並ぶのも文字化けですか?

広い意味では文字化けですが、原因はいくつかあります。「□(豆腐)」は文字コードは合っていてもフォントにその文字が無い場合に出やすく、「?」や「�」は文字コードの不一致で対応する文字が見つからないときに出ます。前者はフォント、後者は文字コードの指定を見直すと解決しやすいです。

文字化けを防ぐ一番簡単な方法は何ですか?

やり取りする全員で文字コードをUTF-8に統一することです。新規ファイルはUTF-8で保存し、Webページやメールでは文字コードを正しく宣言しておくと、受け手のソフトが解釈を誤りにくくなります。Excel向けCSVなど相手の環境が決まっている場合だけ、その標準に合わせて変換すれば十分です。