CSVの文字化けを30秒で直す!Shift-JIS⇔UTF-8変換の全手順【Windows/Mac対応】
会計ソフトやECサイトの管理画面からダウンロードしたCSVファイルをExcelで開いたら、全部「繧ア繧ォ繧ォ」のような謎の文字に……。この文字化け、原因はShift-JISとUTF-8の文字コードの不一致です。直し方自体は簡単で、メモ帳だけで30秒もあれば解決できます。
この記事では、Windows・Mac別にCSVの文字化けを直す具体的な手順を解説します。変換時にデータが壊れるのを防ぐ注意点や、毎回手動で変換しなくて済む方法もまとめました。
CSVの文字化けを今すぐ直す3つの方法
文字化けしたCSVを手元で直す方法は、大きく3つあります。どれもインストール不要で、すぐ試せます。
メモ帳で文字コードを変換する(最速・Windows)
Windowsなら、メモ帳だけで文字コード変換が完了します。所要時間は30秒ほどです。
手順:
- 文字化けしたCSVファイルを右クリック →「プログラムから開く」→「メモ帳」を選択
- メモ帳で開くと、多くの場合は日本語が正しく表示されます(メモ帳は文字コードの自動判定を試みます)
- 「ファイル」→「名前を付けて保存」をクリック
- 保存ダイアログの下部にある「文字コード」を確認します
- Excelで開きたい場合: 「UTF-8(BOM付き)」を選択して保存
- 保存したファイルをExcelで開き直す
注意: Windows 11のメモ帳はUTF-8をデフォルトとして扱うため、Shift-JISのCSVを開いた際に文字化けしたまま表示されることがあります。メモ帳で開いても文字化けしている場合は、「元のファイル」が別の文字コードを使っている可能性があります。その場合は次の「Excelのデータ取り込み機能」を試してください。
操作前に必ずやること: 元のCSVファイルをコピーしてバックアップを取ってください。「名前を付けて保存」で別名にするか、事前にファイルを複製しておけば安心です。
Excelの「データ取り込み」機能で開く(文字コード指定)
ExcelにはCSVの文字コードを指定して読み込む機能があります。ダブルクリックで開いて文字化けする場合でも、この方法なら正しく表示できます。
手順:
- Excelを起動し、空のブックを開く
- 「データ」タブ →「テキストまたはCSVから」をクリック
- 文字化けしているCSVファイルを選択
- プレビュー画面が表示されたら、「元のファイル」のドロップダウンで文字コードを切り替える
- UTF-8のCSVの場合: 「65001: Unicode (UTF-8)」を選択
- Shift-JISのCSVの場合: 「932: 日本語 (Shift-JIS)」を選択
- プレビューで日本語が正しく表示されていることを確認 →「読み込み」をクリック
ファイルの文字コードがわからなくても大丈夫です。プレビュー画面でエンコードを切り替えるたびに表示が更新されるので、日本語が正しく見える設定を探せばOKです。
Googleスプレッドシートにアップロードする(Excel不要)
Excelを持っていない場合や、最も手軽に済ませたい場合はGoogleスプレッドシートが便利です。
手順:
- Googleドライブにアクセス
- CSVファイルをドラッグ&ドロップでアップロード
- アップロードされたファイルを右クリック →「アプリで開く」→「Googleスプレッドシート」を選択
(ファイルをダブルクリックするとプレビュー表示になる場合があります。その場合は画面上部の「Googleスプレッドシートで開く」をクリックしてください)
- 文字化けせずに表示されることを確認
GoogleスプレッドシートはUTF-8を自動認識するため、UTF-8のCSVならそのまま正しく開けます。ただし、Shift-JISのCSVは文字化けする場合があります。その場合は先にメモ帳でUTF-8に変換してからアップロードしてください。
Excelで使いたい場合は、Googleスプレッドシートの「ファイル」→「ダウンロード」→「Microsoft Excel (.xlsx)」でダウンロードすれば、文字化けの心配なくExcelで開けます。
Macでの文字化け解消手順
MacはWindowsと使えるツールが異なります。テキストエディタかターミナルで対応できます。
テキストエディット/CotEditorで変換する
Macに標準搭載されている「テキストエディット」でも文字コード変換は可能です。ただし、操作がやや煩雑なので、無料アプリ「CotEditor」のほうがおすすめです。
CotEditorを使う場合:
- CotEditor(Mac App Storeから無料でインストール可能)でCSVファイルを開く
- CotEditorは文字コードを自動検出し、ウィンドウ下部に現在の文字コードが表示されます
- ツールバーの文字コード表示部分をクリック →「UTF-8」または「Shift-JIS」を選択
- 「名前を付けて保存」で保存
CotEditorは文字コードの自動検出精度が高く、変換操作も直感的です。CSVを頻繁に扱うMacユーザーなら入れておいて損はありません。
ターミナルのiconvコマンドで一発変換する
ターミナル操作に抵抗がなければ、iconvコマンドが最も確実です。複数ファイルの一括変換にも使えます。
Shift-JIS → UTF-8に変換する場合:
iconv -f SHIFT_JIS -t UTF-8 input.csv > output_utf8.csv
UTF-8 → Shift-JISに変換する場合:
iconv -f UTF-8 -t SHIFT_JIS input.csv > output_sjis.csv
Shift-JISに変換する際の注意: UTF-8にしか存在しない文字(一部の絵文字や機種依存文字など)が含まれている場合、変換が途中で止まることがあります。-cオプションを追加すると、変換できない文字をスキップして処理を続けます(スキップされた文字は欠落するため、変換後のファイルを必ず確認してください)。
iconv -f UTF-8 -c -t SHIFT_JIS input.csv > output_sjis.csv
複数ファイルを一括変換する場合:
for file in *.csv; do
iconv -f SHIFT_JIS -t UTF-8 "$file" > "utf8_${file}"
done
-fが変換元の文字コード、-tが変換先の文字コードです。元ファイルは上書きされず、新しいファイルとして出力されるので安全です。
エラーが出る場合は、変換元の文字コード指定が間違っている可能性があります。-f SHIFT_JISで失敗したら-f UTF-8に変えてみてください。
方法別の比較と選び方
どの方法を使うか迷ったら、以下の表で判断してください。
| 方法 | 対応OS | 手軽さ | 大量ファイル | データ外部送信リスク | おすすめシーン |
|---|---|---|---|---|---|
| メモ帳 | Windows | ★★★ | × (1件ずつ) | なし | 1〜2件のCSVを今すぐ直したい |
| Excelインポート | Windows/Mac | ★★☆ | × (1件ずつ) | なし | 文字コードが不明で試行錯誤したい |
| Googleスプレッドシート | どちらも | ★★★ | × (1件ずつ) | あり(Googleサーバーに保存) | Excelがない/Googleアカウントで管理したい |
| CotEditor | Mac | ★★★ | × (1件ずつ) | なし | Macで手軽に変換したい |
| iconvコマンド | Mac/Linux | ★☆☆ | ○ (一括可) | なし | 複数ファイルをまとめて変換したい |
| オンライン変換ツール(サーバー処理型) | どちらも | ★★☆ | △ | あり(機密データ注意) | インストール不要で済ませたい |
| オンライン分析ツール(ブラウザ完結型) | どちらも | ★★☆ | △ | なし(ブラウザ内処理) | 変換+集計を一括でこなしたい |
ほとんどのケースではメモ帳(Windows)またはCotEditor(Mac)で十分です。定期的に大量のCSVを変換する必要がある場合だけ、iconvコマンドやツールの導入を検討してください。
文字化けが起きる原因をざっくり理解する
直し方がわかったところで、そもそもなぜ文字化けが起きるのかを簡単に整理しておきます。原因を知っておくと、同じトラブルの再発防止に役立ちます。
Shift-JISとUTF-8 — 2つの「翻訳表」のずれ
文字コードとは、パソコンが文字を数値に変換するときの「翻訳表」のようなものです。日本では長年Shift-JISが標準でしたが、インターネットの普及に伴い世界共通のUTF-8が主流になりました。
問題は、ExcelがいまだにShift-JISを既定として使っているのに対し、Webサービスやクラウドシステムの多くがUTF-8でCSVを出力している点です。この「翻訳表のずれ」が文字化けの正体です。
- Shift-JIS: 日本語専用。Excelの既定。Windows環境で長い歴史がある
- UTF-8: 世界中の言語に対応。Webの標準。Google系サービスはすべてUTF-8
つまり、UTF-8で書かれたCSVをShift-JISのルールで読もうとするから、文字が化けるわけです。
BOM(Byte Order Mark)の有無で変わるExcelの挙動
UTF-8にはBOM付きとBOMなしの2種類があります。BOM(Byte Order Mark) とは、ファイルの先頭に付く3バイトの目印(EF BB BF)で、「このファイルはUTF-8です」とアプリケーションに伝える役割があります。
- BOM付きUTF-8: Excelがダブルクリックで正しく開ける
- BOMなしUTF-8: ExcelがShift-JISと誤認し、文字化けする
多くのWebサービスはBOMなしUTF-8でCSVを出力するため、ダブルクリックで開くと文字化けが起きます。前述の「メモ帳で変換」の手順は、このBOMを付ける操作を行っています。
変換時にやりがちな3つの失敗と回避策
文字コード変換自体は簡単ですが、知らないとハマるポイントが3つあります。
元ファイルを上書きしてデータが消える
文字コード変換のつもりが、操作を誤ってファイルが空になったり、一部の文字が欠落したりするケースがあります。Shift-JISにない文字(一部の漢字や記号)をShift-JISに変換すると、該当文字が「?」に置き換わる場合もあります。
回避策: 変換前に必ずファイルをコピーしてバックアップを取る。「名前を付けて保存」で元ファイルと別名にする。これだけで、万一変換に失敗しても元データに戻せます。
先頭ゼロや日付が変わる(文字コード以外の落とし穴)
文字化けとは直接関係ありませんが、CSVをExcelで開くと同時に発生しやすいトラブルです。
- 郵便番号「0120001」→「120001」(先頭のゼロが消える)
- 電話番号「090-1234-5678」→「90-1234-5678」
- 日付「2024-01-15」→「45306」(Excelのシリアル値に変換される)
これらはExcelが数値や日付を「勝手に」解釈してしまうために起こります。文字コード変換で直るものではないので注意してください。
回避策: Excelの「データ」→「テキストまたはCSVから」でインポートする際に、該当列のデータ型を「文字列」に設定してから読み込みます。ダブルクリックで開く方法ではこの設定ができないため、先頭ゼロが含まれるCSVは必ずインポート機能を使いましょう。
BOM付き/BOMなしの選び方を間違える
BOM付きUTF-8はExcelとの相性が良い反面、他のシステムでは問題を起こすことがあります。
| 用途 | 推奨する形式 | 理由 |
|---|---|---|
| Excelで開く | UTF-8(BOM付き) | Excelが自動認識してくれる |
| プログラムで処理する | UTF-8(BOMなし) | BOMが余計なバイトとしてエラーの原因になる |
| 他システムにインポートする | UTF-8(BOMなし) | BOMを想定していないシステムが多い |
| Shift-JISが指定されている | Shift-JIS | 受け取り側がShift-JISを要求している場合 |
迷ったら**「Excelで開くだけならBOM付きUTF-8」**と覚えておけば、ほぼ問題ありません。
毎回の手動変換から解放される方法
月次のレポートや売上データなど、定期的にCSVをダウンロードして開く業務がある場合、毎回メモ帳で変換するのは面倒です。根本的に解決する方法を2つ紹介します。
ExcelでUTF-8 CSVを標準保存する
Excel 2016以降では、CSVの保存形式に「CSV UTF-8(コンマ区切り)」が追加されています。
「ファイル」→「名前を付けて保存」→ ファイルの種類を「CSV UTF-8(コンマ区切り)(*.csv)」に変更して保存すれば、BOM付きUTF-8のCSVが作成されます。自分がCSVを作る側であれば、この形式で保存すれば相手先でも文字化けしにくくなります。
また、CSVの出力元がシステムの場合は、システム管理者や開発チームに「BOM付きUTF-8で出力してほしい」と依頼するのも有効です。出力元を変えてしまえば、受け取る側で毎回変換する手間がなくなります。
ブラウザ完結型のCSV分析ツールを使う
ブラウザ上でCSVの文字コードを自動判定しながら分析できるツールを使えば、ローカルでの変換作業が不要になります。
たとえばLeapRows(※筆者開発ツール)は、データをサーバーに送信せずブラウザ内で処理するCSV分析ツールです。CSVをドラッグ&ドロップするだけで文字コードを自動判定し、Shift-JISでもUTF-8でも文字化けなくデータを表示できます。エンコーディングを意識する必要がありません。
頻繁にCSVデータを分析・加工する業務であれば、こうしたツールの導入を検討する価値があります。文字コード変換だけでなく、フィルタリングや集計、ピボットテーブルの作成もブラウザ上で完結するため、Excelとの往復作業そのものを減らせます。
まとめ
CSVの文字化けは、ファイルの文字コード(Shift-JIS / UTF-8)とExcelの既定設定が食い違うことで起こります。
直し方の3ステップ:
- まずメモ帳(またはCotEditor)で開いてみる — 日本語が読めたら「名前を付けて保存」でUTF-8(BOM付き)に変換
- メモ帳でもダメならExcelのインポート機能 — 文字コードを切り替えながらプレビューで確認
- Mac/Linuxならターミナルのiconvコマンド — 一発で変換でき、複数ファイルの一括処理にも対応
変換作業の前には元ファイルのバックアップを忘れずに。先頭ゼロの消失やBOM付き/BOMなしの選び間違いにも気をつけてください。
毎回の手動変換をなくしたいなら、CSVの出力元をBOM付きUTF-8に統一するか、文字コードを自動判定してくれるブラウザ完結型ツールの活用がおすすめです。