tools24.jp

※ 当サイトはアフィリエイト広告を利用しています。リンク先のサービスへの申し込みがあった場合、 当サイトに報酬が支払われることがあります。なお、ツールの機能・ランキング・評価には一切影響しません。

ExcelのCSV文字化けを3秒で直す方法

最終更新: 2026年3月20日 ・ 読了時間: 約5分

「CSVファイルをExcelで開いたら文字化け…」これはおそらく日本のオフィスで最も多いファイルトラブルです。 原因はシンプルで、UTF-8で保存されたCSVをExcelがShift_JISとして開いてしまうことにあります。 この記事では原因の詳細と、確実な解決策を紹介します。

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

CSVファイルには「このファイルはUTF-8です」という情報が含まれていません。 テキストファイルはバイト列の羅列であり、どのエンコーディングで書かれたかを示す 標準的なメタデータが存在しないのです。

ExcelはCSVを開く際に、OSのデフォルトエンコーディングを使います。 日本語WindowsのデフォルトはShift_JIS(コードページ932)であるため、 UTF-8のCSVをShift_JISとして解釈し、文字化けが発生します。

文字化けのパターン

元のテキスト文字化け後原因
東京都渋谷区譚ア莠ャ驛ス貂峨き蜍?UTF-8 → Shift_JIS 誤認
山田太郎蟆冗判螟ェ驛?UTF-8 → Shift_JIS 誤認
¥1,000Â¥1,000UTF-8バイトの誤解釈

解決策①: tools24.jp で一瞬修復(最も簡単)

  1. 文字化け修正ツールを開く
  2. 文字化けしたCSVファイルをドラッグ&ドロップ
  3. 自動でエンコーディングを判定 → UTF-8(BOM付き)でダウンロード
  4. ダウンロードしたCSVをExcelで開く → 文字化けなし

※ ブラウザ内で処理されるため、CSVの内容がサーバーに送信されることはありません。

解決策②: BOM付きUTF-8で保存する

BOM(Byte Order Mark)とは、ファイルの先頭に付加される3バイトのマーカー(EF BB BF)です。 ExcelはBOMを検出するとUTF-8として正しくファイルを開きます。

プログラムからCSVを出力する場合

Python

with open('output.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(data)

utf-8-sig を指定すると自動的にBOMが付加されます。

JavaScript / Node.js

const BOM = '\uFEFF';
fs.writeFileSync('output.csv', BOM + csvContent, 'utf8');

PHP

header('Content-Type: text/csv; charset=UTF-8');
echo "\xEF\xBB\xBF"; // BOM
echo $csvContent;

解決策③: Excelの「データの取得」機能を使う

Excel 2016以降では、「データ」タブ →「テキストまたはCSVから」を使うと、 エンコーディングを自動判定(またはプレビューで確認)してからインポートできます。 ただし、ダブルクリックでCSVを開く場合はこの機能は使われないため、注意が必要です。

予防策: 今後文字化けを防ぐには

まとめ

ExcelのCSV文字化けは「UTF-8 vs Shift_JIS」のエンコーディング不一致が原因です。 最も簡単な解決策はtools24.jpの文字化け修正ツールでBOM付きUTF-8に変換すること。 プログラムからCSVを出力する場合は、最初からBOM付きUTF-8で保存しておけば、受け取り側で文字化けが起きません。

関連ガイド

よくある質問

文字コード問題を根本解決PR