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の場合)

  1. Chromeの設定を開く
  2. 「言語」設定を開く
  3. 「優先する言語」の一番上に日本語(ja)が設定されているか確認する

日本語が最上位になっていれば、日本語版のページ・ファイルが提供されるはずです。ただし、言語設定が正しくても特定のファイルダウンロードだけ別の言語のエンコードになるケースがあります。その場合は次の手順でファイルを変換してください。


ケース2:ExcelでCSVを保存すると文字化けする

もう一つよくあるパターンです。Shift-JISのCSVファイルをExcelで開いて編集し、保存した際に文字コードが変わってしまい、アップロード時に文字化けするというケースです。

ExcelはCSVファイルを保存する際、環境によって文字コードを自動変換してしまうことがあります。このため、文字コードを意識せずにExcelでCSVを扱うのは危険です。


対処法:VS Codeでエンコーディングを確認・変換する

文字化けの根本的な対処法として、Visual Studio Code(VS Code) の使用をおすすめします。VS Codeは文字コードを明示的に指定してファイルを開いたり、指定した文字コードで保存したりする機能を備えています。

手順1:エンコーディングを指定してファイルを開く

  1. VS Codeでファイルを開く(デフォルトではUTF-8として開かれる)
  2. 文字化けしている場合は、画面右下の文字コード表示をクリック
  3. 「Reopen with Encoding(エンコードで再度開く)」 を選択
  4. 候補から正しい文字コードを選ぶ
    • 郵便局テンプレートの場合:Japanese (Shift JIS)
    • 中国語になってしまった場合:Chinese Simplified (GB 2312) など

正しいエンコーディングを選ぶと、文字化けせずに内容が表示されます。

手順2:目的の文字コードで保存する

正しく表示できたら、今度は目的の文字コードで保存し直します。

  1. 画面右下の文字コード表示をクリック
  2. 「Save with Encoding(エンコードで保存)」 を選択
  3. 保存したい文字コードを入力して検索する
    • クリックポストの場合:japanese と入力し、Japanese (Shift JIS) を選択

これで、Shift-JISのCSVファイルとして保存されます。

""RSeaovpeenwiwtihthEnEcnocdoidnign"g"ShiftJIS

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の方が文字コード管理の面で安全です