スプレッドシートでCSVが文字化けする原因と対処法!UTF-8やShift-JIS変換方法

CSVファイルをスプレッドシートで開いたときに文字化けしてしまい、肝心のデータが読めない……そんな経験をしたことはありませんか。特に日本語のデータを扱うときは、UTF-8やShift-JISといった文字コードの違いが原因になることが多いです。本記事では、スプレッドシートでCSVが文字化けする典型的なケースと、その直し方を具体的に解説します。MacやExcelとの違い、Google Apps Script(GAS)での回避方法もあわせて紹介するので、業務効率化につながりますよ。


目次

CSVがスプレッドシートで文字化けするのはなぜか

CSVが文字化けする背景には「文字コードの不一致」があります。文字コードとは、コンピューターが文字を数値として認識するための規格のことです。例えば、アルファベットや数字は世界共通で同じコードが割り当てられますが、日本語は複数の規格が存在するため、環境によってズレが生じやすいのです。

代表的な文字コードの種類

  • UTF-8:世界標準で使われている文字コード。スプレッドシートやWebサービスで推奨される形式。
  • Shift-JIS:日本独自で広く普及してきた形式。Excelや古いシステムでよく利用される。
  • EUC-JP:Unix系のシステムで多く使われていたが、現在は減少傾向。

例えば、Excelで保存したCSVはShift-JISで出力されることが多く、そのファイルをスプレッドシートで開くと文字化けする可能性が高いです。逆に、スプレッドシートからUTF-8形式でダウンロードしたCSVを、Shift-JIS前提のシステムに読み込むと文字化けが発生します。

実際のビジネス現場での事例

ある企業では、営業リストをExcelで管理し、それをCSVに変換してスプレッドシートで共有していました。しかし、社内でMacを利用している人が開くと顧客名が「????」と文字化けしてしまい、再入力に時間を費やしていました。原因はExcelがShift-JISで保存していたためで、スプレッドシートが想定するUTF-8との不一致が起きていたのです。

他業種・海外との比較

海外ではUTF-8が主流であり、日本のようにShift-JISで保存するケースは少なくなっています。日本国内だけでやりとりする場合はShift-JISでも問題ありませんが、グローバルにデータを共有する際はUTF-8を使うことが推奨されています。

注意点

文字化けの原因を「ソフトの不具合」と勘違いする人もいますが、ほとんどの場合は文字コード設定の問題です。まずは自分が扱っているCSVファイルの文字コードが何なのかを確認することが解決の第一歩になりますよ。


MacでスプレッドシートCSVが文字化けする時の直し方

Macユーザーは特に「スプレッドシート csv 文字化け mac」という悩みを抱えることが多いです。その理由は、Macの標準テキストエディタやExcelが、UTF-8ではなく独自の文字コードで保存してしまうことがあるためです。

実践的な解決方法

  1. テキストエディタで文字コードを確認する
    Macの「テキストエディット」では文字コードの確認や変換が難しいため、CotEditorやVisual Studio Codeといったエディタを使うと便利です。ファイルを開くと自動で文字コードを判別してくれます。
  2. UTF-8に変換して保存する
    CotEditorなどでは「保存時にUTF-8に変換」を選択するだけで簡単に変換できます。その後、スプレッドシートにインポートすれば文字化けは解消されます。
  3. Googleスプレッドシートのインポート時に設定を確認する
    スプレッドシートでCSVをアップロードするとき、UTF-8で保存されたファイルを選ぶのが確実です。

事例

あるマーケティング部門では、アンケートデータをMacでCSV化したところ、スプレッドシートに読み込んだ際に回答欄の日本語がすべて文字化けしました。調べてみると保存時の文字コードが「MacJapanese」になっていたことが原因でした。UTF-8に変換して保存し直したところ、問題は一瞬で解決しました。

注意点

Macでは「見た目では正常に開けるけれど、スプレッドシートに読み込むと文字化けする」というケースがよくあります。これはMac内で自動的に文字コードを補完しているだけで、実際のファイルはShift-JISやMacJapaneseのまま保存されていることがあるためです。


スプレッドシートとExcelで文字コードが違うときの対処法

業務でよくあるのが「Excelでは正しく開けるのに、スプレッドシートでは文字化けする」という状況です。これはExcelがデフォルトでShift-JISを使い、スプレッドシートがUTF-8を前提としているために発生します。

ExcelからスプレッドシートにCSVを移すときの手順

  1. ExcelでCSVを保存するときに「UTF-8形式」で保存する。
    Excelのバージョンによっては「名前を付けて保存」でUTF-8を選べます。
  2. UTF-8に変換できない場合は、メモ帳やエディタで開き直して「UTF-8で保存」する。
  3. そのCSVをスプレッドシートにアップロードすれば文字化けは防げます。

GASを使った解決方法

「スプレッドシート csv 文字化け gas」という検索をする人も多いように、Google Apps Scriptを使えば自動で文字コードを変換できます。たとえば、外部システムからShift-JISのCSVを取得し、GASでUTF-8に変換してからスプレッドシートに反映する仕組みを作れば、毎回手作業で変換する必要がなくなります。

事例

経理部門では毎月、基幹システムから出力されるCSV(Shift-JIS)をスプレッドシートで共有していました。毎回文字化けが発生し、そのたびに手作業で直していたため、かなりの工数がかかっていました。そこで、GASを使って自動でUTF-8に変換して読み込む仕組みを構築した結果、毎月30分以上の作業削減につながりました。

他業種・海外との比較

欧米の企業では、ほぼすべてUTF-8で統一されているため「文字化け」という概念自体が珍しいです。日本だけがShift-JISの文化を長く引きずっているため、国内のExcel環境とスプレッドシートの間でトラブルが起きやすいと言えます。

Shift-JISをUTF-8に変換する具体的な方法

CSVの文字化けを防ぐには、Shift-JISで保存されたファイルをUTF-8に変換するのがもっとも確実です。ここでは、実務でよく使われる3つの方法を紹介します。

方法1:テキストエディタで変換する

  • Windowsなら「サクラエディタ」や「秀丸エディタ」、Macなら「CotEditor」や「Visual Studio Code」を使用するのがおすすめです。
  • ファイルを開いたら「文字コードを指定して保存」でUTF-8を選ぶだけで完了します。

この方法は直感的で分かりやすいため、エンジニアでない方でもすぐに対応できます。

方法2:Google Apps Scriptで自動変換する

業務で毎回CSVを処理する場合は、GASで自動化すると効率的です。

  1. GASでCSVを取得する(UrlFetchAppやDriveAppを利用)
  2. Utilities.newBlobでバイナリデータをUTF-8に変換する
  3. スプレッドシートに書き込む

定型業務に組み込めば、Shift-JISを意識せずにデータ処理が可能になります。

方法3:コマンドラインで変換する

IT部門やシステム担当者なら、iconvコマンドで一括変換するのも便利です。

iconv -f SHIFT-JIS -t UTF-8 input.csv > output.csv

一度に大量のファイルを変換できるので、過去データを整理するときに役立ちます。

注意点

変換時に文字化けが残る場合は、ファイル内部で「機種依存文字(例:①、㈱、Ⅲなど)」が使われているケースが多いです。これらはUnicodeに対応していない場合があり、事前に置き換える必要があります。


CSV文字化けを直すときの注意点

文字化けを直す際に見落としやすい落とし穴もあります。

よくある注意点

  • Excelで再保存すると再びShift-JISになる
     せっかくUTF-8に変換しても、Excelで開いて保存するとShift-JISに戻ることがあります。再利用のときは必ず文字コードを確認しましょう。
  • 空白や改行が化けることがある
     全角スペースや改行コード(CRLF、LF)が原因でレイアウトが崩れることもあります。テキストエディタで改行コードを統一するのがおすすめです。
  • 一部のセルだけ文字化けするケース
     CSVをインポートした際に、カンマやダブルクォートの扱いが不適切だと一部の列が文字化けすることがあります。インポート時の区切り文字設定も確認してください。

事例

ある人材会社では、応募者データをCSVで受け取りスプレッドシートに読み込んでいました。しかし、名前は正常に表示されるのに住所だけ文字化けしていました。調査すると、住所欄に半角カンマが含まれており、CSVの列区切りと衝突していたことが判明。区切り文字をタブに変更して再保存することで解決しました。


UTF-8でも直らないときの最終対処法

「UTF-8に変換したのに文字化けが直らない」という相談も少なくありません。この場合は文字コード以外に原因が潜んでいることがあります。

考えられる原因

  • BOM付きUTF-8で保存されている
     BOM(Byte Order Mark)付きUTF-8は、一部のシステムで文字化けの原因になります。保存時に「BOMなしUTF-8」を選ぶと改善する場合があります。
  • データの途中に制御文字が混じっている
     システムからエクスポートされたデータに制御文字が含まれていると、正常に表示されません。テキストエディタで不可視文字を削除する必要があります。
  • アプリ側の読み込み設定が固定されている
     特定の業務システムではShift-JISしか受け付けないことがあります。その場合はUTF-8に変換するのではなく、システム側に合わせる必要があります。

解決のステップ

  1. UTF-8(BOMなし)で保存し直す
  2. 改行コードをLFに統一する
  3. 制御文字や特殊記号を削除する
  4. 最後の手段として「別のインポート方法」を試す(Googleスプレッドシートの「ファイルをインポート」ではなく、直接開く方法など)

業務で文字コードを統一するメリット

文字コードの統一は単なるエラー回避にとどまりません。業務全体の効率化やミス防止につながります。

メリット

  • データ共有がスムーズになる
     部門間で文字化けが発生せず、再入力の手間が減ります。
  • システム連携がしやすい
     外部サービスとのAPI連携や、GASによる自動処理が安定します。
  • 国際的な利用にも対応できる
     UTF-8を使えば、海外とのデータ交換でトラブルが減ります。

事例

ある小売企業では、営業部はExcel、マーケティング部はスプレッドシートを使っており、CSVをやりとりするたびに文字化けが起きていました。そこで全社的に「UTF-8で保存する」ルールを徹底したところ、部門間のデータトラブルがゼロになり、週に数時間の無駄が削減されました。


まとめ

CSVの文字化けは、スプレッドシートとExcel、Macなど異なる環境をまたいで作業すると頻発します。そのほとんどは文字コードの不一致が原因であり、UTF-8とShift-JISの違いを理解することが解決の第一歩です。

  • Macで文字化けする場合はUTF-8で保存し直す
  • Excelとスプレッドシートのやりとりでは文字コード変換が必須
  • GASやiconvを使えば自動で変換できる
  • UTF-8でも直らない場合はBOMや制御文字を疑う

業務でCSVを扱う方は、文字コードを統一するだけで大幅に効率が上がります。今後は「CSVはUTF-8で保存」を基本ルールにしておくと安心ですよ。

今週のベストバイ

おすすめ一覧

資料ダウンロード

弊社のサービスについて詳しく知りたい方はこちらより
サービスご紹介資料をダウンロードしてください