pipipipi.net

pipipipi.net

約5分で読めます

文字化けを直す方法 — 原因の見分け方とWindows・ExcelのUTF-8対処

文字化けを直す方法 — 原因の見分け方とWindows・ExcelのUTF-8対処

CSVをExcelで開いたら「譁�ュ怜喧縺・」のような記号の羅列になった、ダウンロードしたテキストファイルが読めない——こうした文字化けは、文字を送る側と受け取る側で「文字コード」の解釈がずれることで起きます。

本記事では文字化けが起きる仕組みと、Windowsで特によく遭遇する3つのパターン、直し方を解説します。

文字化けが起きる仕組み

パソコン上の文字は、内部的には数値として管理されています。この数値と文字を対応させるルールが「文字コード(エンコーディング)」です。

日本語でよく使われる文字コードには次のようなものがあります。

  • UTF-8:世界標準。Web・現行のOS・アプリの多くで標準的に使われる
  • Shift-JIS(CP932):Windowsで長く使われてきた日本語用の文字コード
  • EUC-JP:主にUnix/Linux系で使われてきた日本語用の文字コード

文字化けは、あるファイルがUTF-8で書かれているのに、開く側がShift-JISだと思い込んで読む(またはその逆)といったズレが原因で起こります。数値と文字の対応表が食い違うため、意図しない文字が表示されるわけです。

直すには「元のファイルが実際は何の文字コードなのか」を特定し、正しい文字コードとして読み直す(あるいは変換する)ことが基本になります。

パターン1:CSVをExcelで開くとUTF-8が文字化けする

最も多いパターンです。CSVファイル自体はUTF-8で正しく作られていても、Excelでダブルクリックして開くと化けることがあります。

原因はExcelの仕様にあります。ExcelはCSVファイルを開く際、既定でShift-JIS(CP932)として解釈しようとします。ファイルがBOMなしのUTF-8で保存されていると、ExcelがそれをUTF-8だと認識できず、Shift-JISとして読み込んでしまうため文字化けが発生します。

対処法

方法A:BOM付きUTF-8で保存し直す

ファイルの先頭に「これはUTF-8です」という目印(BOM=Byte Order Mark、3バイトの符号)を付けると、ExcelはUTF-8だと正しく認識できます。テキストエディタで「UTF-8(BOM付き)」を選んで保存し直すか、文字コード変換ツールでBOMを付加します。

方法B:Excelの「データの取得」機能で開く

ファイルをダブルクリックせず、Excelのリボンから「データ」→「テキストまたはCSVから」を選んで読み込むと、取り込み時に文字コードを明示的に指定できます。プレビュー画面で「元のファイル」の項目をUTF-8に切り替えれば、ファイル自体を変更せずに正しく表示されます。

いずれの方法も、Excel側がShift-JISを前提にファイルを読みにいくというクセを踏まえた回避策です。

パターン2:メモ帳でUTF-8保存したファイルがBOM付き/BOMなしで食い違う

かつてのメモ帳は、UTF-8で保存すると自動的にBOMが付与される仕様でした。BOMを想定していないプログラムやシステムでこのファイルを読み込むと、ファイル先頭に余計な文字が混入したように見えて処理エラーや文字化けの原因になっていました。

Windows 10のアップデート(バージョン1903以降)でメモ帳の保存メニューが見直され、「UTF-8」(BOMなし)と「UTF-8(BOM付き)」が別の選択肢として明示されるようになりました。既定はBOMなしのUTF-8です。

つまり現在のメモ帳では、保存時にどちらの形式を選ぶかを自分でコントロールできます。逆に言えば、選び間違えると意図しない形式で保存され、読み込み先によっては文字化けやエラーの原因になります。

対処法

  • Excelで開く前提のCSV → 「UTF-8(BOM付き)」で保存(パターン1の理由による)
  • プログラムで読み込むテキスト・設定ファイル → 「UTF-8」(BOMなし)で保存するのが無難。多くのスクリプトやツールはBOMを想定していないため、先頭に余計なバイトが入ると不具合につながることがある

保存時にメニューの選択肢をよく確認する、というだけで防げるトラブルです。

パターン3:ダウンロードしたファイルがShift-JISでUTF-8前提のエディタで化ける

古いシステムや国内の一部業務システムからダウンロードするテキスト・CSVファイルは、今でもShift-JISで出力されることがあります。これをUTF-8前提のエディタやツールでそのまま開くと文字化けします。

対処法

  1. テキストエディタの「文字コードを指定して開く」機能でShift-JISを指定し、正しく表示させる
  2. 正しく表示された状態から、必要な文字コード(UTF-8など)に変換して保存し直す

手元にエディタがない、複数ファイルをまとめて確認したい場合は、文字化け直しツールを使うと、UTF-8・Shift-JIS・EUC-JPなど複数の文字コードの組み合わせで自動的に再デコードを試し、正しく読める結果を一覧で確認できます。

まとめ:文字化けを見分けるチェックリスト

症状疑うべき原因
CSVをExcelで開くと記号だらけになるUTF-8ファイルをExcelがShift-JISとして解釈している
メモ帳で保存したファイルが別ソフトで文字化けBOMの有無が読み込み先の想定と食い違っている
ダウンロードしたファイルが最初から読めないファイル自体がShift-JISなどUTF-8以外で作られている

いずれのパターンも「元の文字コードは何か」「読み込む側は何を前提にしているか」のズレを特定できれば直せます。自分で判断がつかない場合は、文字化け直しツールに貼り付けて、正しく読める変換パターンを探すのが手早い方法です。


再発防止には、ファイルをやり取りする際に文字コードを明示する(BOM付きUTF-8で統一する、Shift-JISのままにしない等)ルールを決めておくと、同じトラブルを繰り返さずに済みます。

関連記事