ホーム > ツール・Excel・API
CSVファイルが開けない・文字化けする時の原因と対処|文字コードの切り分け

CSVファイルが開けない・文字化けする・列がずれて崩れる。その多くは、ファイルを保存したときの文字コードと、そのファイルを読み込むときの文字コードが一致していないことが根本原因です。とくにExcelが「日本語のCSVは Shift_JIS で書かれているはず」と決めつけて開くため、Web管理画面やAPIが吐き出す UTF-8 のCSVが 譁・喧縺・ のような記号に化けます。この記事では、EC店舗運営者が商品・受注・在庫のCSVを扱うことを想定し、「開けない/化ける/崩れる」を症状で切り分け、原因を突き止めて、壊さず開き・壊さず保存し直すところまでを、Microsoftの公式仕様を軸に整理します(画面表記はバージョンで変わるため、最終確認は各アプリの公式ヘルプで)。
CSVが開けない・文字化けする・崩れる ── まず症状で切り分ける

CSVのトラブルは大きく4つに分かれます。どれに当てはまるかを先に判別すると、原因と対処が一直線でつながります。同じ「うまく開けない」でも、原因は文字コード・区切り・数値化・ファイル自体の問題と別物だからです。
| あなたの症状 | 画面で起きていること | 主な原因 | この記事の該当セクション |
|---|---|---|---|
文字が記号に化ける(譁・喧縺・ など) | 中身は表示されるが日本語が壊れている | 保存時と読込時の文字コード不一致 | 「なぜ文字化けするのか」「文字コードを指定して開く」 |
| 列がずれる・1行が途中で折り返す | 表の形が崩れて別の列に値が入る | 区切り文字の誤認・セル内改行・引用符の不整合 | 「列がずれる・崩れる」 |
| 数字が化ける(先頭0が消える・E+12) | 文字化けではなく数値が変形 | Excelが数値と解釈して自動変換 | 「数字が化ける」 |
| そもそもファイルが開かない | ダブルクリックしても何も起きない/エラー | 関連付け・破損・ロック・行数超過 | 「そもそも開けない」 |
まず1つ、確実な切り分け方があります。そのCSVをメモ帳(テキストエディタ)で開いてみることです。メモ帳で中身の文字がきちんと読めるなら、ファイルは壊れておらず「Excelでの開き方(文字コードの指定)」の問題です。メモ帳でも記号だらけなら文字コード変換が必要、そもそも開けないならファイル破損やロックを疑う、という順に切り分けられます。
なぜ文字化けするのか ──「保存時」と「読込時」の文字コード不一致という1つの原因
文字化けの原因は、突き詰めるとたった1つです。ファイルを書き出したときの文字コードと、読み込むときに想定した文字コードが違うこと。文字コードとは「どのバイト列をどの文字に対応させるか」の取り決めで、書き手と読み手が同じ取り決めを使っていないと、同じバイト列が別の文字に化けます。
具体例で言うと、日本語 という文字を UTF-8 で保存したファイルを、Excelが Shift_JIS だと思い込んで読むと 譁・喧縺・ のような記号列になります。バイトの並びは正しいのに、変換表が食い違っているだけです。
ここで重要なのが、Excelは日本語環境ではCSVをダブルクリックで開くと、既定で Shift_JIS(CP932)として解釈するという挙動です。ところが現在のWebサービス・EC管理画面・APIが出力するCSVは UTF-8 が主流。つまり「UTF-8で書かれたファイルを、Excelが勝手に Shift_JIS として開く」という食い違いが、日本語CSV文字化けの典型パターンになっています。
だから対処の方向性は2つに絞れます。読む側(Excel)に正しい文字コードを教えて開くか、書く側でExcelが素直に読める文字コードに保存し直すか。どちらを選ぶかは、そのCSVを「人が見るだけ」なのか「別システムに再アップロードする」のかで変わります(後述)。
UTF-8 と Shift_JIS(CP932)の違い、そして BOM とは
化ける・化けないを理解するには、この2つの文字コードと「BOM」という目印を押さえておくと迷いません。
| 項目 | UTF-8 | Shift_JIS(CP932) |
|---|---|---|
| 位置づけ | 現在のWeb標準。Unicodeベースで世界中の文字を扱える | Windows日本語環境の従来コード |
| よく使う場面 | Web管理画面・API・多くのモール新系統の出力 | 従来の業務ソフト、楽天の商品CSV(item.csv)など |
| Excelダブルクリック時 | BOMなしだと化ける/BOM付きなら正しく開く | そのまま正しく開くことが多い |
UTF-8 は世界標準ですが、Excelがダブルクリックで正しく開くには「BOM」という目印が要るというのが、多くの人がつまずくポイントです。
BOM(Byte Order Mark)とは、ファイルの先頭に付く数バイトの印で、「このファイルはこの文字コードですよ」と読み手に知らせる役割を持ちます。UTF-8 の BOM は 0xEF 0xBB 0xBF の3バイトです。BOM付きのUTF-8なら、Excelはダブルクリックでも「これはUTF-8だ」と気づいて正しく開きます。逆に BOMなしのUTF-8 は、Excelが Shift_JIS と決めつけて開くため化けます。Microsoftも公式に「UTF-8でエンコードされ、BOM付きで保存されたCSVは通常どおり開ける」と案内しています。
ただし、BOMは万能ではありません。プログラムやシェルスクリプト、一部のシステムはBOMを不正な文字として扱い、取り込みエラーになることがあります。人がExcelで見るにはBOMがあった方が楽ですが、機械が読む(別システムに再アップロードする)用途では、むしろBOMを付けない方が安全です。要求が正反対になる点は、後半のEC実務でも効いてきます。
ダブルクリックで開かない ──「テキストまたはCSVから」で文字コードを指定して開く
文字化けを最も確実に、しかも元のファイルを一切書き換えずに避ける方法が、Excelの取り込み機能で文字コードを指定して開くやり方です。ダブルクリックはExcelの決めつけに任せる開き方なので、そこを人の手で指定してやります。
手順は次のとおりです(Excel 2016以降・Windows)。
- Excelを空の状態で起動する(CSVをダブルクリックしない)
- [データ]タブ →[データの取得と変換]の中の [テキストまたはCSVから] を選ぶ
- 開きたいCSVファイルを選択する
- プレビュー画面の 「元のファイル(ファイルの起源)」 で文字コードを選ぶ
- UTF-8のファイルなら 「65001: Unicode (UTF-8)」
- Shift_JISのファイルなら 「932: 日本語 (シフト JIS)」
- 「区切り記号」 がカンマ(あるいはタブ)で正しいかを確認する
- プレビューで文字化けが消えているのを見て 「読み込み」 を押す
Excel 2016以降はCSV(UTF-8)の取り込みに対応しているので、この経路なら UTF-8 でも Shift_JIS でも、正しい文字コードを選ぶだけで化けずに開けます。プレビューで正しく見えたコードが正解なので、迷ったら両方試して読める方を選べば確実です。
なお、Microsoftのヘルプでは、対象が .txt ファイルの場合はテキストインポートウィザードが起動し、.csv の場合はExcelが自動でファイルを開いて新しいブックに表示する、と整理されています。拡張子を .csv から .txt に変えてから取り込むと、後述のウィザードで列ごとの書式を細かく指定しやすくなる、という小技もあります。
それでも直らない時 ── 保存し直す(メモ帳)とレガシ ウィザード
取り込み経路が使えない環境や、配布元でファイル自体を直せる場合の対処です。
メモ帳で文字コードを変えて保存し直す
配布するファイルそのものを直せるなら、メモ帳(Windows標準)で開いて保存し直すのが手軽です。
- CSVをメモ帳で開く
- [ファイル]→[名前を付けて保存]を選ぶ
- 保存ダイアログ下部の 「文字コード(エンコード)」 を選ぶ
- Excelで見やすくしたい → 「UTF-8(BOM付き)」
- 相手が Shift_JIS を要求する(楽天item.csvなど)→ 「ANSI(Shift_JIS)」
- 保存する
ただし前述のとおり、BOM付きUTF-8に変換したファイルを、BOMを嫌う別システムへ再アップロードする用途には使わないでください。人が見る用と、機械が読む用は分けて保存するのが安全です。
レガシ テキストファイルウィザードを有効化する
列ごとに「文字列」「日付」などの書式を細かく指定したい場合は、旧来のテキストファイルウィザードが便利です。既定では非表示なので、有効化が要ります。
- [ファイル]→[オプション]→[データ]を開く
- 「レガシ データ インポート ウィザードの表示」で 「テキストから(レガシ)」にチェック
- [データ]→[データの取得]→[従来のウィザード]→[テキストから(レガシ)]が使えるようになる
このウィザードなら、取り込みの途中で列を選んで書式を「文字列」に指定できます。次に説明する0落ち・桁落ちの防止に有効な経路です。
列がずれる・崩れる ── 区切り文字とセル内改行・引用符の見分け方
文字は化けていないのに、表の形が崩れて値が別の列に入る。これは文字コードではなく、CSVの「区切り」の解釈がずれているサインです。原因は主に3つあります。
- 区切り文字の誤認 ── CSVはカンマ区切りが基本ですが、タブ区切りやセミコロン区切りのファイルもあります。Excelが区切りを取り違えると列がまとめて1列に入ったり、逆に分割されすぎたりします。
- データ内にカンマが混入 ── 商品説明などの本文にカンマが含まれると、そこで列が余計に区切られてしまいます。
- セル内改行・引用符(ダブルクォート)の不整合 ── 本文に改行が入っているのに引用符で正しく囲まれていないと、1件のレコードが途中で折り返し、次の行とずれます。
対処の考え方は次のとおりです。
| 崩れ方 | 対処 |
|---|---|
| 全部が1列に詰まる/分割されすぎ | 「テキストまたはCSVから」の取り込みで区切り記号を明示指定(カンマ/タブ) |
| 本文のカンマで列が増える | 出力側で本文をダブルクォートで囲むか、区切りをタブに変える |
| 1行が途中で折り返す | セル内改行を含む列を引用符で囲む。囲めないなら本文から改行を除く |
たとえばAmazonの在庫ファイルのように、テンプレートがタブ区切りテキストで指定されている形式では、本文からカンマ・改行・タブを取り除き、指定の区切り形式を崩さないことが崩れ防止の基本になります。「開き方」だけでなく「作り方・出力側」で守るべき点がある、と押さえておくと再発を防げます。
数字が化ける(0落ち・E+12・桁落ち)── 開く前に「文字列」で守る
これは文字化けとは別の問題です。Excelが数字の列を「数値」として自動変換してしまうために起きます。EC実務では商品コード・JANコード・電話番号・郵便番号で頻発します。
- 0落ち ──
007や0120…の先頭の0が消えて7になる。Excelが数値化すると先頭のゼロは無意味な桁として捨てられるためです。 - 指数表記(E+12) ── 13桁以上のJANコードやSKUが
4.912345E+12のような表示に化けます。 - 桁落ち ── 15桁を超える数字は末尾が
000に丸められ、元の値が失われます。
いずれも開く前に、その列を「文字列」書式として取り込むことで防げます。前述のレガシ ウィザード(列を選んで「文字列」を指定)や、「テキストまたはCSVから」の取り込みでの列の型指定を使います。ポイントは、一度Excelで数値として開いてしまうと、その後で書式を文字列に変えても失われた0や桁は戻らないこと。「開く前」の指定が唯一の防御です。
この数値の崩れ(0落ち・JANコードの桁落ち・ユーザー定義書式での見せ方)はそれ自体が深いテーマなので、詳しい防ぎ方は関連記事「Excelのユーザー定義書式で数値を守る」(/ec/excel-user-teigi/)にまとめています。本記事では「症状の切り分け」として、まず文字列で守る、とだけ押さえてください。
CSVが「そもそも開けない」時 ── 関連付け・破損・ロック・行数上限
化ける以前に、ダブルクリックしても開かない・エラーが出るケースです。原因は4つに整理できます。
| 原因 | 症状の見え方 | 対処 |
|---|---|---|
| 関連付け・拡張子 | 別のアプリが起動する/開くアプリを聞かれる | .csv の既定アプリをExcelまたはメモ帳に設定し直す |
| ファイル破損・ダウンロード途中 | エラーで開かない/中身が空・不完全 | ダウンロードし直す。メモ帳で中身が読めるか確認 |
| ファイルのロック | 「使用中」「読み取り専用」と出る | そのファイルを開いている別アプリ(Excel・連携ツール等)を閉じる |
| 行数・容量の超過 | 途中までしか読み込まれない | Excelの上限は約104万行。超える巨大ファイルはGoogleスプレッドシートや分割で開く |
切り分けの起点は、やはりメモ帳で開いてみることです。メモ帳で中身のテキストがちゃんと読めれば、ファイルは壊れておらず「Excelでの開き方」の問題。メモ帳でも開けない・空なら、破損かダウンロード失敗を疑って取り直します。ロックは、同じCSVを在庫連携ツールや別のExcelが握っていることが多いので、関連しそうなアプリを一度すべて閉じてから開き直します。
Mac/Googleスプレッドシートで開く(環境別の回避策)
Windowsだけでなく、環境をまたぐと文字コード差が新たな化けを生みます。
- Mac(Numbers / Excel for Mac) ── Mac側で保存したCSVをWindowsのExcelで開くと化けることがあります。受け手がWindowsなら、保存時に文字コードを明示し、相手に合わせて BOM付きUTF-8 か Shift_JIS で書き出すと安定します。
- Googleスプレッドシート ── [ファイル]→[インポート]でCSVを読み込むと、文字コードを自動判定してくれることが多く、Excelでの文字化け回避策として使えます。0落ちしにくいのも利点です。ただしGoogle側で開いて再度CSVに書き出すと、今度はGoogleが選んだ文字コード(UTF-8など)で出力される点は意識しておきます。
「見るだけならGoogleスプレッドシート、編集して同じ形式で戻すならExcelで文字コード指定」と使い分けると、環境差のトラブルを避けやすくなります。
EC実務:楽天・Amazon・Qoo10 などモールCSVの文字コードは要求がバラバラ
ここがEC店舗運営者にとって一番の落とし穴です。モールごとに要求する文字コード・区切り形式が違うため、「1つの正解」で全部を回そうとすると必ずどこかで化けます。
| モール/用途 | よくある要求 | 崩さないコツ |
|---|---|---|
| 楽天 商品CSV(item.csv) | Shift_JIS で作成 | Excel保存時に「CSV(コンマ区切り)(*.csv)」を使う。UTF-8で上げると化けやすい |
| Amazon 在庫ファイル | カテゴリ別テンプレート(多くはタブ区切りテキスト)+指定文字コード | テンプレートの列・区切り・文字コードを崩さず保存。自作CSVの流し込みはエラーの元 |
| Qoo10 など | CSV(.csv) かつ Shift-JIS で保存し直すと読み込めることが多い | 取り込みエラー時はまず文字コードを Shift_JIS に変えて再保存 |
共通する実務のコツは2つです。1つは、編集はExcelでしても、保存は「元の文字コード・区切り形式」を崩さないこと。取り込むときに文字コードを指定して開き、作業後は相手モールが要求する形式で書き出します。もう1つは、BOMの扱い。人が見るためのBOM付きUTF-8を、そのままモールのアップロード画面に上げると、BOMがエラー要因になることがあります。再アップロード用は BOMなし、または指定文字コードで保存し直します。
各モール固有の化け・エラーは個別記事にまとめています。あわせて確認してください。
- Amazonの文字化け・在庫ファイルエラー:/ec/amazon-mojibake/
- 楽天の受注CSV・CSVエラー:/ec/rakuten-juchu-csv/ ・ /ec/rakuten-csv-error/
- Qoo10のCSV文字化け:/ec/qoo10-csv/
まとめ ── 壊さず開く・壊さず保存するチェックリスト
CSVの「開けない・文字化け・崩れる」は、症状で切り分ければ原因は限られています。最後に、実務で使えるチェックリストにまとめます。
- まずメモ帳で開いて切り分ける(読める=開き方の問題/読めない=文字コード変換か破損)
- 化けるならダブルクリックせず、[データ]→[テキストまたはCSVから]で文字コード(65001:UTF-8/932:Shift_JIS)を指定して開く
- 数字(0落ち・E+12・桁落ち)は開く前に列を「文字列」書式で守る(開いた後では戻らない)
- 列がずれるなら区切り文字を明示し、本文のカンマ・改行は引用符で囲むか区切りを変える
- 開けないなら関連付け・破損・ロック・行数上限を順に確認する
- 保存し直すときは用途で分ける。人が見る=BOM付きUTF-8/機械が読む・再アップロード=BOMなし・指定文字コード
- モールCSVは要求文字コードがバラバラ(楽天=Shift_JIS/Amazon=タブ区切りテンプレ)。元の形式を崩さず保存する
「保存時と読込時の文字コードを一致させる」という一点を押さえておけば、次に化けたときも落ち着いて切り分けられるはずです。
FAQ
ダブルクリックで開くと必ず文字化けしますか?
UTF-8(BOMなし)のCSVは、日本語環境のExcelが Shift_JIS と解釈するため化けやすいです。BOM付きUTF-8、または Shift_JIS のCSVならダブルクリックでも正しく開くことが多いです。確実なのは[データ]→[テキストまたはCSVから]で文字コードを指定して開く方法です。
「BOM付きUTF-8」で保存すればすべて解決しますか?
Excelで見る用途には有効ですが、CSVを別システムやモールのアップロード画面に再アップロードする場合は、BOMがエラーの原因になることがあります。「人が見る用」か「機械が読む用」かで使い分けてください。
電話番号やJANコードの先頭0が消える・E+12になるのは文字化けですか?
いいえ、これは文字化けではなく、Excelが数字を「数値」として自動変換した結果です。開く前に該当列を「文字列」書式で取り込めば防げます(一度開いた後では失われた0や桁は戻りません)。詳しくはユーザー定義書式の記事(/ec/excel-user-teigi/)で扱っています。
列がずれて表示されるのはなぜですか?
区切り文字の誤認、データ内のカンマ混入、セル内改行やダブルクォートの不整合が主な原因です。取り込み時に区切り文字を明示指定し、出力側で本文を引用符で囲むと直ります。文字コードの問題ではないため、文字コードを変えても直りません。
楽天やAmazonのCSVはどの文字コードで保存すべきですか?
モールごとに要求が違います。楽天の商品CSV(item.csv)は Shift_JIS、Amazonの在庫ファイルはテンプレート指定(多くはタブ区切りテキスト)が基本です。取り込み・編集後は、元の文字コード・区切り形式を崩さずに保存してください。
関連する自動化ツール
受注CSVを一括処理するツール(ラクリプ) ── 受注データのCSV出力・一括発送・ステータス更新をまとめて行えます。
店舗の「次の一手」を一緒に進めるなら
運営代行・ECコンサル・AIツールまで、現場を知るチームがワンストップで伴走します。
西尾 勝太株式会社ラクダ 代表
楽天SOY 2年連続受賞 / 楽天NATIONSリーダー店舗 / 楽天NATIONS AIエバンジェリスト
楽天市場の月商を5年で200万円→2億円に伸ばした現場の実践者。売れるECの方程式にAIを重ね、EC事業者の「次の一手」に伴走しています。



