文字化け・エンコーディングのトラブルと対処法
CSVの文字化けの原因と、UTF-8への変換で解消する方法を説明します。
文字コード(エンコーディング)とは
文字コードとは、文字(ひらがな、アルファベット、数字、記号)とファイルに格納するバイト列の対応規則です。テキストファイルを保存するとき、すべての文字がエンコーディングに従ってバイトに変換されます。ファイルを開くときは、そのバイトが理想的には同じエンコーディングで文字に戻されます。
CSVはプレーンテキストなので、ファイル内のすべての文字にエンコーディングが影響します。保存時と開くときのエンコーディングが異なると、文字が誤って解釈され、読めない記号・疑問符・□として表示されます。これが「文字化け」です。
主な文字コードと発生する環境
- UTF-8
- Webと現代システムの標準です。すべての言語・特殊文字に対応しています。ほとんどのAPI・データベース・現代アプリケーションがUTF-8を前提としています。すべての新規ファイルに推奨されます。
- UTF-8 with BOM
- ファイル先頭に3バイトの接頭辞(EF BB BF)があるUTF-8です。ExcelはこのBOMを使ってUTF-8ファイルを認識し正しく開きます。BOMなしだとExcelが地域エンコーディングをデフォルトとして使い、日本語などの非ASCII文字が文字化けします。CSVをExcelで開く場合はUTF-8 BOMを使ってください。
- Shift-JIS(CP932)
- 日本語Windowsのレガシーエンコーディングです。日本語Windowsのデフォルトエンコーディングであり、日本のERPシステムや旧バージョンのExcelからのエクスポートファイルに頻繁に使われます。
- EUC-JP
- 古いUnixシステムや一部のLinuxサーバーで使われる日本語エンコーディングです。現代の日本語システムはほぼShift-JISかUTF-8に移行していますが、古いサーバーログや旧システムのデータに存在することがあります。
- Windows-1252(CP1252)
- 英語・フランス語・ドイツ語・スペイン語など西ヨーロッパ言語のエンコーディングです。西ヨーロッパロケールのWindowsでは、ExcelのCSVデフォルトエンコーディングがUTF-8ではなくWindows-1252であることが多いです。
ExcelがCSVのテキストを文字化けさせる理由
ExcelのCSV処理はエンコーディング問題の最も一般的な原因です:
- 保存時:「名前を付けて保存→CSV(カンマ区切り)」を使うと、UTF-8ではなくOSのデフォルトの地域エンコーディング(日本語WindowsではShift-JIS)でファイルが保存されます。このファイルをUTF-8を前提とする他のシステムで開くと日本語が文字化けします。
- 開く時:BOMなしのUTF-8 CSVを開くと、ExcelはShift-JISなど地域エンコーディングを仮定し、日本語などの文字が文字化けします。
- BOMの解決策:UTF-8ファイルがUTF-8 BOM(EF BB BF)で始まれば、ExcelはUTF-8として認識して正しく開きます。これが「UTF-8 BOM」がExcelで使うCSVファイルに推奨される理由です。
Excelから正しく保存するには:「名前を付けて保存」で「CSV UTF-8(コンマ区切り)(*.csv)」を選んでください。これがUTF-8 BOMファイルを生成するオプションです。
ファイルの文字コードを特定する方法
エンコーディング情報はファイルの内容に格納されないため、ファイルの内容だけから確実にエンコーディングを特定することはできません。ツールはバイトパターンの統計的解析で推測します。形式・基本チェックで検出された文字コードと信頼度を確認できます。検出が間違っているなら(プレビューで文字化け)、文字化け復元で手動でエンコーディングを指定できます。
正しいエンコーディングの特定に役立つ手がかり:
- ファイルはどこで作られましたか?日本のシステム → Shift-JIS の可能性。韓国のシステム → EUC-KR/CP949 の可能性。西洋のWindowsシステム → Windows-1252 の可能性。
- どのアプリケーションがエクスポートしましたか?そのアプリのエクスポート設定でエンコーディングオプションを確認してください。
- プレビューは正しく見えますか?候補のエンコーディングを試して目視確認してください。
ステップバイステップ:文字化けしたCSVの修正方法
- 文字化け復元を開く — 文字化け復元に移動してファイルをアップロードエリアにドロップします。サーバーには送信されず、ファイルはブラウザ内だけで処理されます。
- 自動検出の文字コードを確認 — ツールが元の文字コードの最善の推測を表示します。最初の数行のプレビューを確認します。
- プレビューが正しく見えるなら — UTF-8 BOMでダウンロードします。
- プレビューがまだ文字化けしているなら — ドロップダウンから元の文字コードを手動で選択します。日本語ファイルはShift-JIS、韓国語はEUC-KR/CP949、西洋語はWindows-1252を試してください。
- UTF-8 BOMをダウンロード — ダウンロードされたファイルは正しい文字を持ち、ExcelやすべてのモダンシステムでこのJOINを正しく開けます。
- 確認 — 変換されたファイルを形式・基本チェックで実行して文字コードがUTF-8であることと内容が正しいことを確認します。
ワークフローに合った文字コードの選び方
- Excelで開くファイルですか? UTF-8 BOMを使ってください。ExcelがExcelで文字化けなく確実に開ける唯一のUTF-8形式です。
- データベースやAPIにインポートするファイルですか? BOMなしのUTF-8を使ってください。ほとんどのモダンシステムはプレーンUTF-8を前提とします。一部のインポーターでBOMがパース問題を起こすことがあります。
- 対象システムが特定の文字コードを要求していますか? その文字コードを使ってください。一部のレガシー日本・韓国システムはShift-JISやEUC-KRを要求します。システムのインポートドキュメントを確認してください。
予防策
- チームの文字コード標準を決めて文書化しましょう(Excelワークフローにはb UTF-8 BOM、それ以外にはプレーンUTF-8)。
- Excelからエクスポートするときは常に「CSV UTF-8(コンマ区切り)」を選び、通常の「CSV(カンマ区切り)」は使わないようにしましょう。
- 外部ソースから受け取ったファイルはすべて使う前に形式・基本チェックでエンコーディングを確認しましょう。インポート後ではなく受け取り段階で問題を検出することが大切です。