CSV文字化けが起きる仕組み

まず押さえておきたいのは、CSVファイルの中には「このファイルは何の文字コードで保存されている」という情報が入っていないということです。CSVは中身がただのテキストの羅列で、どの文字コードで書かれているかを自分自身では宣言しません。そのため、ファイルを開くアプリ側が「たぶんこの文字コードだろう」と推測、あるいは決め打ちして読み込むことになります。

問題は、この推測がファイルの実際の保存形式と食い違ったときに起こります。たとえばShift-JISで保存されたCSVをUTF-8だと思って開いたり、逆にUTF-8のファイルをShift-JISとして読み込んだりすると、日本語のようなマルチバイト文字はバイトの区切りを誤って解釈され、「�」や意味不明な記号の並びに崩れてしまいます。これが文字化けの正体です。半角英数字だけのCSVがめったに化けないのは、それらがどの文字コードでもほぼ同じバイトで表されるからで、化けるのはいつも日本語などのマルチバイト文字です。CSV編集全般の基礎はCSVエディタとはもあわせてご覧ください。

Shift-JIS と UTF-8 の違い

日本語を表せる文字コードは一つではありません。CSVでよく問題になるのがShift-JIS(CP932)とUTF-8という2種類で、どちらも日本語を扱えますが中身の仕組みがまったく違います。Shift-JISは、Windowsが日本語の標準として長く採用してきた歴史ある文字コードで、古い基幹システムやEC・通販プラットフォームから出力されるCSVでは今も広く使われています。一方のUTF-8は、世界中の文字を統一的に扱える現代の標準規格で、Web・スマホ・新しいシステムのほとんどがこちらを採用しています。

重要なのは、まったく同じバイトの並びでも、どちらの文字コードだと解釈するかによって表示される文字が変わるという点です。つまりファイル自体は正しくても、開く側が想定する文字コードを間違えれば化けます。文字化けは「ファイルが壊れた」のではなく「読み方を間違えた」だけのことが多く、正しい文字コードで開き直せば元通りに読めるケースがほとんどです。

観点Shift-JIS(CP932)UTF-8
位置づけWindows時代からの日本語向け文字コード世界共通の現代標準
主な出力元古いシステム・EC/通販の受注CSVWeb・スマホ・新しいアプリ
扱える文字日本語+英数字が中心世界中のほぼすべての文字
BOM基本なしあり・なしの両方が存在

Excelで開くと文字化けするケース

実務でもっともよく聞く文字化けの相談が、「ExcelでCSVをダブルクリックで開いたら日本語が化けた」というものです。原因は、Excel(とくに古いバージョンや、Macでのダブルクリックによる直接オープン)が、ユーザーに文字コードを尋ねることなく自動で決め打ちして読み込んでしまうことにあります。

日本語版のExcelはCSVをShift-JISだと想定して開く挙動が長く続いてきたため、UTF-8で保存されたCSVをそのまま開くと化けるのが典型的なパターンです。近年のWebサービスやシステムはUTF-8で書き出すことが多い一方、Excel側の想定はShift-JIS寄り——この食い違いが、日常的な文字化けの最大の発生源になっています。Excelの側で毎回「データの取得」からエンコーディングを指定し直す方法もありますが、手間がかかるうえ操作を忘れやすく、そもそも文字化けを起こさないツールで開くのが確実です。ExcelとCSVエディタの違い全般はCSV vs Excelで解説しています。

Lamiaでの開き方

Lamiaは、こうした文字コードの取り違えをユーザーが意識しなくても防げるよう設計されています。ファイルを開くとき、LamiaはUTF-8、UTF-8 BOM、Shift-JIS(CP932)を自動判定し、そのファイルに合った文字コードで読み込みます。開く前に「これはShift-JIS?UTF-8?」と自分で選ぶ必要はなく、どのプラットフォームから出力されたCSVでも、ドラッグして開くだけで日本語が正しく表示されます。

保存時にも文字コードを選べるので、Shift-JISで受け取ったCSVをUTF-8にそろえて書き出す、あるいはその逆といった変換も、専用の変換ツールを別に用意することなくLamia上で完結します。文字化けの多くはEC運営の受注CSVや、大容量CSVを扱う現場で発生しますが、そうした場面でも文字コードの心配なくデータチェックや一括修正に取りかかれます。「まず正しく開く」という最初のハードルを、Lamiaは自動判定で丸ごと取り除きます。

よくある質問

なぜExcelでCSVを開くと文字化けするのですか?

ExcelはCSVをダブルクリックで開くとき、文字コードをユーザーに尋ねず自動で決め打ちして読み込むためです。日本語版のExcelはShift-JISを想定して開く挙動が長く続いてきたため、UTF-8で保存されたCSVをそのまま開くと日本語が化けます。近年のWebサービスやシステムはUTF-8で書き出すことが多く、この想定の食い違いが文字化けの最大の原因になっています。

Shift-JISとUTF-8はどう見分ければいいですか?

ファイル名や見た目だけで文字コードを確実に見分けることはできません。おおまかな目安として、古い基幹システムやEC・通販プラットフォームから出力されたCSVはShift-JIS(CP932)、Webサービスや新しいアプリが書き出したCSVはUTF-8であることが多いです。ただし確実なのは、文字コードを自動判定するツールで開いて日本語が正しく表示されるか確かめる方法です。

LamiaはCSVの文字コードを自動判定しますか?

はい。Lamiaはファイルを開くときにUTF-8、UTF-8 BOM、Shift-JIS(CP932)を自動判定し、そのファイルに合った文字コードで読み込みます。開く前に自分で文字コードを選ぶ必要はなく、日本語のCSVもドラッグして開くだけで文字化けせず正しく表示されます。保存時には文字コードを選べるため、Shift-JISとUTF-8を相互に変換することもできます。