使い方ガイド公開日 読了目安 約8分

CSVがExcelで文字化けするときの直し方|UTF-8(BOM付き)とShift_JISの使い分け

Webサービスからダウンロードした CSV をダブルクリックで Excel で開いたら、「豌丞錐,菴乗園」のように文字化けしていた。これは CSV の中身が壊れているのではなく、Excel が文字コードを取り違えて読んだだけです。この記事では、化ける理由、いま開いている CSV を読める形で開く方法、次から化けない保存の仕方(UTF-8 BOM付き・Shift_JIS)、変換するときに消える文字の注意点をまとめます。

ExcelはBOMのないCSVをShift_JISとして読む

最近のWebサービスやシステムが書き出すCSVは、ほとんどがUTF-8です。一方、日本語版のWindowsのExcelは、CSVをダブルクリックで開くと、ファイルの先頭に「UTF-8です」という印(BOM)がなければShift_JISとして読みます。UTF-8の日本語をShift_JISで読むので、次のように化けます。

元の内容Excelでの見え方(UTF-8をShift_JISで読んだ)
氏名,住所豌丞錐,菴乗園
商品名,価格蝠�刀蜷�,萓。譬シ
山田太郎,東京都千代田区螻ア逕ー螟ェ驛�,譚ア莠ャ驛ス蜊�サ」逕ー蛹コ
よろしくお願いします繧医m縺励¥縺企。倥>縺励∪縺�

BOM(バイトオーダーマーク)は、ファイルの先頭に置くEF BB BFの3バイトで、画面には表示されません。ExcelはこのBOMがあればUTF-8として正しく読みます。つまり「UTF-8(BOM付き)」で保存されたCSVなら、ダブルクリックでも化けません。英数字だけのCSVは、UTF-8とShift_JISで同じバイトになるので化けず、日本語が入ったときだけ化けるのもこのためです。

いま化けているCSVを正しく開く方法

  1. 1

    Excelのデータタブから読み込む

    空のブックを開き、「データ」タブ→「テキストまたはCSVから」でファイルを選びます。プレビュー画面の「元のファイル」で「65001: Unicode (UTF-8)」を選ぶと、日本語が読めることを確かめてから読み込めます。

  2. 2

    BOM付きのUTF-8に変換してから開く

    文字化け 復元・解読ツールの「ファイル・CSV」にファイルを入れると、文字コード・BOMの有無・改行コードを判定します。「UTF-8(BOM付き)」を選んで保存したファイルは、ダブルクリックでもExcelで化けずに開けます。

  3. 3

    Googleスプレッドシートで開く

    GoogleスプレッドシートやMacのNumbersはUTF-8のCSVをそのまま読めます。中身を見るだけならこれでも十分ですが、Shift_JISのCSVを開くと逆に化けることがあります。

化けた文字しか手元にない(CSVの中身をメールに貼られた、など)ときは、化けた文字を「文字化けを直す」に貼り付ければ、UTF-8をShift_JISで読んだものとして元に戻します。「豌丞錐,菴乗園」なら「氏名,住所」です。化け方の見分け方は文字化けのパターン早見表を参考にしてください。

渡す相手に合わせた保存の仕方

渡す先おすすめの文字コード理由
WindowsのExcelで開く人UTF-8(BOM付き)ダブルクリックで化けず、絵文字や旧字も残る
古い業務システム・会計ソフトへの取り込みShift_JIS取り込み側がShift_JISしか読めないことが多い
プログラム・データベース・APIUTF-8(BOMなし)先頭のBOMが1列目の項目名に交じるのを防ぐ
Mac・GoogleスプレッドシートUTF-8BOMの有無に関係なく読める

Excelで保存するときは、「名前を付けて保存」のファイルの種類で選びます。「CSV UTF-8(コンマ区切り)」はBOM付きのUTF-8、「CSV(コンマ区切り)」は日本語版WindowsではShift_JISで保存されます。改行コードは、Windowsのソフト向けならCRLF、Mac・Linuxやプログラム向けならLFが基本です。

Shift_JISに変換すると消える文字

UTF-8はほぼすべての文字を表せますが、Shift_JISで表せる文字は限られています。UTF-8のCSVをShift_JISに変換すると、表せない文字は「?」に置き換わり、元に戻せません。WindowsのShift_JIS(CP932)で表せるかどうかは次のとおりです。

文字Shift_JIS(CP932)でメモ
①・㈱・Ⅲ表せるNEC特殊文字として収録。古いMacやEUC-JPでは化けることがある
髙(はしごだか)・﨑(たつさき)表せるIBM拡張文字として収録
𠮷(つちよし)表せない吉野家の「𠮷」など。UTF-8では4バイトの文字
🍣などの絵文字表せない「?」になる
~(全角チルダ)・-(全角マイナス)表せるただしシステムによって「〜」「−」と別の文字として扱われる

ツールでShift_JISを選んで保存するときは、表せない文字を保存前に一覧で表示します。「髙橋,①,𠮷野家,🍣」なら「𠮷」と「🍣」の2つが出るので、「吉」に書き換える、絵文字を消すなど、取り込み先のルールに合わせて直してから保存してください。人名の旧字体は書き換えると別人の扱いになることもあるので、取り込み先に確認するのが確実です。

よくある質問

CSVをExcelで開くと文字化けするのはなぜですか?
UTF-8で保存されたCSVを、ExcelがShift_JISとして読んでいるためです。日本語版WindowsのExcelは、先頭にBOMのないCSVをShift_JISとして開きます。UTF-8(BOM付き)で保存し直すか、データタブから文字コードを指定して読み込めば化けません。
BOM付きUTF-8とBOMなしUTF-8の違いは何ですか?
ファイルの先頭にEF BB BFの3バイト(BOM)があるかどうかの違いです。中身の文字は同じですが、ExcelはBOMがあるとUTF-8として読みます。プログラムやデータベースに渡すときは、BOMが1列目の項目名に交じることがあるのでBOMなしが向いています。
Shift_JISのCSVが必要と言われました。どう変換しますか?
Excelなら「CSV(コンマ区切り)」で保存すると、日本語版WindowsではShift_JISになります。ブラウザで変換するなら、文字化け 復元・解読ツールの「ファイル・CSV」でShift_JISを選んで保存します。絵文字や𠮷など、Shift_JISで表せない文字は「?」になるので先に直してください。
MacでCSVが文字化けします。
MacのExcelでも、BOMのないUTF-8のCSVは化けることがあります。データタブから文字コードを指定して読み込むか、UTF-8(BOM付き)に変換してください。逆に、WindowsのShift_JISのCSVをNumbersなどUTF-8前提のアプリで開くと化けるので、そのときはUTF-8に変換します。

この記事で紹介したツール

あわせて読みたい

仕組み解説約8分

%E3%81%82・\u3042・\343の読み方|URL・JSON・gitで日本語が符号になる理由

URLをコピーしたら「%E6%96%87%E5%AD%97」、APIの返り値を見たら「\u6587\u5b57」、gitのファイル名が「\346\226\207」。どれも文字化けに見えますが、日本語が壊れたのではなく、日本語のバイトや番号を英数字で書き表した「符号」のまま見えている状態です。この記事では、よく見る9種類の書き方の見分け方と読み方、どこで出てくるのか、表示を日本語にする設定をまとめます。

記事を読む →
仕組み解説約8分

「�」「?」の文字化けは戻せる?|欠けた文字の復元と、戻せない文字化けの見分け方

文字化けした文に「�」(黒いひし形に?)が交じっていると、もう戻せないと思いがちです。実は「�」の所で失われたのは多くの場合1バイトだけで、文字コードの決まりと前後の文脈から、元の文字をかなりの確率で推測できます。一方、「?」や「・」に置き換わって保存されたもの、「�」ばかりの文字化けは戻せません。この記事では、「�」が出る理由と推測で補える仕組み、戻せる・戻せないの見分け方、文字化けを悪化させない注意点をまとめます。

記事を読む →
仕組み解説約8分

文字化けのパターン早見表|縺・ã・‚ƒ・$B から原因の文字コードを見分ける

「縺薙s縺ォ縺。縺ッ」「日本語」「‚±‚ñ‚É‚¿‚Í」のような文字化けは、でたらめに見えて実は規則どおりに化けています。最初に出てくる文字を見れば、どの文字コードをどれと取り違えたのかがほぼ分かります。この記事では、よく見る化け方7通りを例つきの早見表にまとめ、それぞれが起きる理由と、戻せる化け方・戻せない化け方の見分け方を説明します。

記事を読む →