CSVファイルの文字化け対策|ExcelではなくVS Codeを使おう
この記事の内容
- クリックポスト(郵便局)のCSVテンプレートで発生する文字化け問題の原因と対処法
- CSVファイルの文字コード(Shift-JIS / UTF-8 / GB2312)の基礎知識
- Visual Studio CodeでCSVファイルのエンコーディングを確認・変換する手順
- ブラウザの言語設定がダウンロードファイルの文字コードに影響するケース
- VS CodeのCSV編集拡張機能(Edit CSV)の活用方法
はじめに
今回は、視聴者の方からいただいた質問をもとに、CSVファイルの文字化け問題について解説します。
きっかけは、郵便局の「クリックポスト」というサービスのCSVテンプレートファイルで文字化けが発生したというご相談でした。クリックポストは宛名ラベルをまとめて作成できる便利なサービスですが、CSVを使ってまとめて申し込む際にこの問題が起きることがあります。文字化けはさまざまな場面で発生しうるため、対処法を知っておくと役立ちます。
文字化けの原因:文字コードの不一致
CSVファイルの文字化けは、ほとんどの場合「文字コードの不一致」が原因です。
クリックポストのCSVテンプレートは Shift-JIS(CP932) という文字コードで配布されています。Shift-JISは日本語のWindowsや日本語Excelとの相性が良く、歴史的な経緯からこの形式が使われています。
一方、現在主流の文字コードは UTF-8 であり、VS CodeなどのモダンなエディタはデフォルトでUTF-8としてファイルを開こうとします。このため、Shift-JISのファイルをそのまま開くと文字化けが発生します。
ケース1:ブラウザの言語設定による意図しない文字コードでのダウンロード
さらに厄介なケースも存在します。クリックポストのCSVテンプレートをダウンロードしたところ、Shift-JISではなく GB2312(中国語の文字コード) のファイルが落ちてきてしまうというケースです。
これは ブラウザの言語設定 が原因である可能性があります。ブラウザはWebサイトにアクセスする際、自分の言語設定をサーバーに送信します。多言語対応しているサイトでは、この情報をもとに言語を切り替えて応答します。
ブラウザの言語設定を確認する方法(Chromeの場合)
- Chromeの設定を開く
- 「言語」設定を開く
- 「優先する言語」の一番上に日本語(ja)が設定されているか確認する
日本語が最上位になっていれば、日本語版のページ・ファイルが提供されるはずです。ただし、言語設定が正しくても特定のファイルダウンロードだけ別の言語のエンコードになるケースがあります。その場合は次の手順でファイルを変換してください。
ケース2:ExcelでCSVを保存すると文字化けする
もう一つよくあるパターンです。Shift-JISのCSVファイルをExcelで開いて編集し、保存した際に文字コードが変わってしまい、アップロード時に文字化けするというケースです。
ExcelはCSVファイルを保存する際、環境によって文字コードを自動変換してしまうことがあります。このため、文字コードを意識せずにExcelでCSVを扱うのは危険です。
対処法:VS Codeでエンコーディングを確認・変換する
文字化けの根本的な対処法として、Visual Studio Code(VS Code) の使用をおすすめします。VS Codeは文字コードを明示的に指定してファイルを開いたり、指定した文字コードで保存したりする機能を備えています。
手順1:エンコーディングを指定してファイルを開く
- VS Codeでファイルを開く(デフォルトではUTF-8として開かれる)
- 文字化けしている場合は、画面右下の文字コード表示をクリック
- 「Reopen with Encoding(エンコードで再度開く)」 を選択
- 候補から正しい文字コードを選ぶ
- 郵便局テンプレートの場合:Japanese (Shift JIS)
- 中国語になってしまった場合:Chinese Simplified (GB 2312) など
正しいエンコーディングを選ぶと、文字化けせずに内容が表示されます。
手順2:目的の文字コードで保存する
正しく表示できたら、今度は目的の文字コードで保存し直します。
- 画面右下の文字コード表示をクリック
- 「Save with Encoding(エンコードで保存)」 を選択
- 保存したい文字コードを入力して検索する
- クリックポストの場合:
japaneseと入力し、Japanese (Shift JIS) を選択
- クリックポストの場合:
これで、Shift-JISのCSVファイルとして保存されます。
VS CodeでCSVを表に表示して編集する
「ExcelなしでCSVを編集できるの?」という疑問もあると思います。答えはYESです。VS Codeの拡張機能を活用することで、Excelライクな表形式でCSVを編集できます。
おすすめ拡張機能:Edit CSV
VS Codeの拡張機能マーケットプレイスで edit csv と検索すると、「Edit CSV」拡張機能が見つかります。インストール後にCSVファイルを開くと、「Edit csv」というボタンが表示され、クリックするとExcelのような表形式で編集できるようになります。
主な機能:
- 行・列の追加・削除
- セルの直接編集
- ソートやフィルタリング
- デリミタ(区切り文字)の指定
文字コードの管理はVS Code本体が担うため、エンコーディングを意識しながら安全に編集できます。
その他のおすすめ拡張機能:Rainbow CSV
rainbow csv と検索してインストールすると、CSVの各列が色分けされて表示されます。テキストエディタとして編集しながら、列の対応関係を視覚的に把握しやすくなります。
なぜExcelを使わない方がいいのか
Excelは表計算ソフトとして非常に優秀ですが、CSVファイルの編集においては以下のリスクがあります。
- 文字コードを自動変換してしまうことがある
- 数値や日付データを自動変換してしまう(「01234」が「1234」になるなど)
- 意図しない形式でCSVが保存されることがある
これらの問題を避けるためにも、CSVファイルの編集はVS Codeで行い、文字コードを明示的に管理することをおすすめします。
まとめ
- CSVファイルの文字化けは、ほとんどの場合文字コードの不一致が原因です
- クリックポストのCSVテンプレートはShift-JIS形式で配布されています
- ブラウザの言語設定によって、ダウンロードファイルの文字コードが変わる場合があります。言語設定で日本語を最上位に設定することがファーストステップです
- VS Codeを使えば、エンコーディングを確認・変換・指定保存できます
- VS Codeの「Edit CSV」拡張機能を使えば、Excelなしでも表形式でCSVを快適に編集できます
- CSVファイルの扱いにはExcelよりもVS Codeの方が文字コード管理の面で安全です