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ではなく独自の文字コードで保存してしまうことがあるためです。
実践的な解決方法
- テキストエディタで文字コードを確認する
Macの「テキストエディット」では文字コードの確認や変換が難しいため、CotEditorやVisual Studio Codeといったエディタを使うと便利です。ファイルを開くと自動で文字コードを判別してくれます。 - UTF-8に変換して保存する
CotEditorなどでは「保存時にUTF-8に変換」を選択するだけで簡単に変換できます。その後、スプレッドシートにインポートすれば文字化けは解消されます。 - Googleスプレッドシートのインポート時に設定を確認する
スプレッドシートでCSVをアップロードするとき、UTF-8で保存されたファイルを選ぶのが確実です。
事例
あるマーケティング部門では、アンケートデータをMacでCSV化したところ、スプレッドシートに読み込んだ際に回答欄の日本語がすべて文字化けしました。調べてみると保存時の文字コードが「MacJapanese」になっていたことが原因でした。UTF-8に変換して保存し直したところ、問題は一瞬で解決しました。
注意点
Macでは「見た目では正常に開けるけれど、スプレッドシートに読み込むと文字化けする」というケースがよくあります。これはMac内で自動的に文字コードを補完しているだけで、実際のファイルはShift-JISやMacJapaneseのまま保存されていることがあるためです。
スプレッドシートとExcelで文字コードが違うときの対処法
業務でよくあるのが「Excelでは正しく開けるのに、スプレッドシートでは文字化けする」という状況です。これはExcelがデフォルトでShift-JISを使い、スプレッドシートがUTF-8を前提としているために発生します。
ExcelからスプレッドシートにCSVを移すときの手順
- ExcelでCSVを保存するときに「UTF-8形式」で保存する。
Excelのバージョンによっては「名前を付けて保存」でUTF-8を選べます。 - UTF-8に変換できない場合は、メモ帳やエディタで開き直して「UTF-8で保存」する。
- その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で自動化すると効率的です。
- GASでCSVを取得する(UrlFetchAppやDriveAppを利用)
- Utilities.newBlobでバイナリデータをUTF-8に変換する
- スプレッドシートに書き込む
定型業務に組み込めば、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に変換するのではなく、システム側に合わせる必要があります。
解決のステップ
- UTF-8(BOMなし)で保存し直す
- 改行コードをLFに統一する
- 制御文字や特殊記号を削除する
- 最後の手段として「別のインポート方法」を試す(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で保存」を基本ルールにしておくと安心ですよ。