CSVファイルをExcelで開いたら文字化けしていた――。この問題の原因は「文字コードの不一致」です。この記事では、CSVの文字化けを直す方法と、文字コードの基礎知識をわかりやすく解説します。
CSVが文字化けする原因
文字コードとは?
文字コードとは、コンピュータが文字を数値に変換するルールのことです。同じ「あ」という文字でも、UTF-8とShift_JISでは異なる数値で表現されます。CSVファイルを作成したソフトと開くソフトで文字コードが異なると、正しく文字を解読できず「文字化け」が発生します。
よくある文字化けパターン
| パターン | 原因 |
|---|---|
| Excelで開くと日本語が全て化ける | UTF-8のCSVをShift_JISとして読み込んでいる |
| 一部の記号や漢字だけ化ける | 機種依存文字(①、髙など)がエンコードに非対応 |
| Macで作ったCSVがWindowsで化ける | MacはUTF-8、WindowsのExcelはShift_JIS前提で開く |
| WebサービスからダウンロードしたCSVが化ける | 多くのWebサービスはUTF-8で出力する |
UTF-8とShift_JISの違い
| 項目 | UTF-8 | Shift_JIS |
|---|---|---|
| 対応文字 | 世界中の文字 | 日本語中心 |
| 主な用途 | Web、Mac、Linux | Windowsの日本語環境 |
| Excelとの相性 | BOMなしだと文字化けしやすい | そのまま開ける |
| ファイルサイズ | 日本語はやや大きい | 日本語はやや小さい |
CSVの文字化けを直す方法
方法1:文字コード変換ツールを使う(最も簡単)
- sakuttoの「CSV文字コード変換」にCSVファイルをアップロードする
- 現在の文字コードが自動判定される
- 変換先の文字コード(Shift_JISまたはUTF-8)を選択する
- 「変換」ボタンを押してダウンロードする
ファイルはブラウザ内で処理され、サーバーに送信されません。社外秘データを含むCSVでも安心して変換できます。
方法2:Excelの「データの取得」機能を使う
Excelで直接文字コードを指定してCSVを開く方法です。
- Excelを開き「データ」タブ →「テキストまたはCSVから」を選択
- 対象のCSVファイルを選ぶ
- 「元のファイル」のドロップダウンで文字コードを「65001: Unicode (UTF-8)」に変更
- プレビューで文字化けが解消されたことを確認し「読み込み」をクリック
方法3:メモ帳で文字コードを変更する(Windows)
Windows 11/10のメモ帳で文字コードを変換する方法です。
- CSVファイルを右クリック →「プログラムから開く」→「メモ帳」
- 文字化けしていないことを確認する(メモ帳はUTF-8を正しく表示できる)
- 「ファイル」→「名前を付けて保存」
- 「文字コード」のドロップダウンで「ANSI」(= Shift_JIS)を選択して保存
- 保存したCSVをExcelで開く
方法4:Macのテキストエディットで変換する
- CSVファイルをテキストエディットで開く
- 「ファイル」→「保存」→「標準テキストのエンコーディング」で「日本語 (Shift JIS)」を選択
- 保存したファイルをExcelで開く
文字コードの確認方法
文字化けを直す前に、CSVファイルの現在の文字コードを確認する方法を知っておくと便利です。
ブラウザで確認する
sakuttoの「CSVビューア」にファイルをアップロードすると、文字コードが自動判定されて表示されます。
メモ帳で確認する(Windows)
- CSVファイルをメモ帳で開く
- 画面右下のステータスバーに「UTF-8」「ANSI」などのエンコーディング名が表示される
コマンドで確認する
# Windows (PowerShell)
Get-Content sample.csv -Encoding Byte -TotalCount 3
# 先頭3バイトが EF BB BF ならUTF-8 BOM付き
# Mac / Linux
file -i sample.csv
シーン別:おすすめの文字コード
ExcelでCSVを開きたい場合
Shift_JIS または UTF-8 with BOM に変換するのがベストです。WindowsのExcelはBOMなしUTF-8を正しく認識しないため、Shift_JISへの変換が最も確実です。
Webサービスにアップロードする場合
ほとんどのWebサービスは UTF-8 を受け付けます。Shift_JISのCSVをアップロードしてエラーが出る場合は、UTF-8に変換してから再度アップロードしてください。
プログラムで読み込む場合
Python、JavaScript、PHPなど現代のプログラミング言語は UTF-8 が標準です。特別な理由がなければUTF-8で統一しましょう。
よくある質問(FAQ)
CSVの文字化けを一括で直す方法はありますか?
sakuttoのCSV文字コード変換ツールでは、複数のCSVファイルをまとめてアップロードして一括変換できます。フォルダ内のCSVファイルをすべて選択してドラッグ&ドロップするだけです。
UTF-8 BOM付きとBOMなしの違いは何ですか?
BOM(Byte Order Mark)はファイル先頭に付与される3バイト(EF BB BF)の目印です。Excelはこの目印を見てUTF-8と判定します。BOMなしUTF-8はExcelで文字化けしやすいですが、プログラムでの読み込みにはBOMなしが推奨されます。
Shift_JISとANSIは同じものですか?
Windowsの日本語環境では、ANSIはShift_JIS(正確にはWindows-31J / CP932)を指します。メモ帳で「ANSI」と表示されるファイルはShift_JISエンコーディングです。
変換してもまだ文字化けする場合はどうすればいいですか?
機種依存文字(①②③、髙、﨑など)は、Shift_JISでは正しく表現できない場合があります。この場合はUTF-8のまま使用するか、CSVをExcel形式(.xlsx)に変換して開くことで解決できます。sakuttoの「CSV→Excel変換」ツールもご活用ください。
ファイルがサーバーに送信されることはありますか?
いいえ、sakuttoのCSV文字コード変換はすべてブラウザ内で処理されます。ファイルが外部サーバーに送信されることはないため、個人情報や社外秘データを含むCSVでも安全にご利用いただけます。
まとめ
CSVの文字化けは、文字コードの不一致が原因です。UTF-8のCSVをExcelで開く場合はShift_JISに変換するのが最も確実な解決方法です。sakuttoのCSV文字コード変換ツールなら、ファイルをアップロードするだけでワンクリック変換でき、データがサーバーに送信されることもありません。