ClaudeにExcelやCSVを渡したら日本語が「譁�蟄怜喧縺�」のように崩れた。あるいはClaudeが作ってくれたCSVをExcelで開いたら、商品名だけが読めない記号に化けていた。
この2つは症状は同じに見えて、原因の場所が違います。そして原因の切り分けさえできれば、直し方はどちらも1分で終わります。
この記事では、化けている場所の見分け方と、そもそも化けが起きない渡し方を整理します。ClaudeでExcelを扱う全体の流れは親ページのClaude で Excel を自動化する使い方にまとめています。
当社はEC事業者向けの在庫最適化システムを開発・運営している会社で、モール別の売上CSV・在庫CSVをClaudeに読ませる作業を毎週行っています。以下は、そこで実際に踏んでいる手順です。
なぜ化けるのか:文字コードという「読み方の約束」
CSVは中身がただの文字の羅列で、「この文字をどの規則で読むか」という情報をファイル自身が持っていません。 開く側が規則を推測します。推測が外れると化けます。
日本語のCSVで使われる規則は、実務上ほぼ次の2つです。
| 文字コード | よく使われる場所 | 別名 |
|---|---|---|
| UTF-8 | AIツール全般、Web系システム、Mac、プログラムの出力 | Unicode |
| Shift_JIS | 日本の業務システム、モールの管理画面からの書き出し、古いExcel運用 | CP932、ANSI、SJIS |
Claudeが読み書きするのはUTF-8です。日本のECの現場に流れているCSVはShift_JISが多く残っています。 化けは、この2つがすれ違うところで起きます。
用語:BOMを知っておくと話が早い
もう1つだけ用語があります。BOM(ビーオーエム)は、ファイルの先頭に付ける「これはUTF-8です」という3バイトの目印です。目には見えません。
ここが実務上いちばん効く一文です。Windows版のExcelでCSVをダブルクリックして開くと、BOMが付いていないUTF-8ファイルはShift_JISとして読まれます。だから化けます。逆に、BOMさえ付いていればExcelはUTF-8だと判断して正しく開きます。
「UTF-8で保存したのにExcelで化ける」の答えは、ほぼこれです。
切り分け:化けているのは「渡すとき」か「開くとき」か
どちらの方向で起きているかで直し方が変わります。まずここを決めてください。
| 症状 | 起きている場所 | 原因 | 直し方 |
|---|---|---|---|
| Claudeの返答のなかで、渡したファイルの日本語が崩れている | 渡すとき(入口) | Shift_JISのCSVをそのまま渡した | xlsxに変換して渡す(後述の手順) |
| ClaudeにCSVを作らせ、Excelで開いたら化けた | 開くとき(出口) | BOMなしUTF-8をExcelがShift_JISと誤読 | BOM付きで出力させる、またはxlsxで出力させる |
| Claude Codeで処理したら、途中から化けた | 処理のなか | 読み込み時の文字コード指定が実ファイルと違う | 読み書きの文字コードを明示する |
| 化けているのが「①」「〜」「㈱」など一部の文字だけ | 機種依存文字 | 文字コードの問題ではない | 該当文字を置き換えるか、xlsxに寄せる |
最後の行だけは別物です。全体が崩れていれば文字コード、数文字だけなら機種依存文字、と覚えておくと切り分けが速くなります。
手順:化けを起こさない渡し方(3ステップ)
当社の結論から書くと、ClaudeとのやりとりはCSVを経由せず、xlsxに寄せるのがいちばん確実です。 xlsxは内部の文字の扱い方が決まっているため、文字コードを選ぶ余地がなく、化けようがありません。
1. 手元のCSVをExcelで開き、xlsxとして保存し直す
CSVをExcelで開いたときに化けていなければ、そのまま「名前を付けて保存」で形式を Excelブック(.xlsx) にします。
開いた時点で化けている場合は、ダブルクリックではなく次の手順で開きます。Excelの [データ]→[テキストまたはCSVから] を選び、ファイルを指定すると、プレビュー画面に「元のファイル」という文字コードの選択欄が出ます。ここを 65001: Unicode (UTF-8) と 932: 日本語 (シフト JIS) で切り替え、プレビューの日本語が読める方を選んで読み込みます。読めた状態でxlsxとして保存します。
この画面は、文字コードを当てる作業をプレビューで確認しながらできる唯一の場所です。推測で変換をかけるより速くて確実です。
2. xlsxのままClaudeに渡す
ブラウザ版のClaudeにアップロードする場合も、Excelアドインで開いているブックを扱う場合も、xlsxであればこの問題は起きません。読み込ませる手順はClaude に Excel を読み込ませる方法にまとめています。
3. 出力もxlsxで受け取る
Claudeに結果を出させるときは、指示文に形式を書き添えます。
「結果はCSVではなくxlsxファイルで出力してください。」
CSVで受け取る必要がある場合(基幹システムに取り込む等)は、代わりにこう書きます。
「CSVで出力してください。文字コードはUTF-8(BOM付き)にしてください。」
BOM付きを指定しておけば、受け取ったCSVをExcelでダブルクリックしても化けません。取り込み先のシステムがShift_JISしか受け付けない場合は、「文字コードはShift_JIS(CP932)にしてください」と書きます。出力形式の指定はClaudeの処理結果をExcelで出力する方法で詳しく扱っています。
実務での使用例:モール別の売上CSVを1つにまとめるとき
当社の使い方をもとにしたモデルケースです。複数のモールの管理画面から月次の売上CSVを落とし、Claudeで1つに統合する場面を想定します。
ここで毎回起きるのが、モールごとに書き出されるCSVの文字コードが揃っていないことです。日本のモールの管理画面から落ちるCSVはShift_JISであることが多く、一方で自社の受注システムからの書き出しはUTF-8、という混在になります。
やっていることは3つです。
- 落としたCSVを1つずつExcelでダブルクリックして開く。 化けたファイルだけを別フォルダに分けます。この時点で「どれがShift_JISか」の仕分けが終わります
- 化けたファイルは[データ]→[テキストまたはCSVから]で文字コードを選び直して開く。 読める方を選んでxlsxで保存します
- 全部をxlsxに揃えてからClaudeに渡す。 「商品名の表記ゆれを統合して、モール別×商品別の売上表にまとめて」と1回頼むだけで済みます
最初は3番だけをやろうとして、化けたCSVをそのまま渡していました。Claudeは化けた文字をそのまま文字として扱うため、同じ商品が別商品として集計され、合計だけが合っているのに内訳が合わない、という分かりにくい間違いになります。1と2を先に済ませるようにしてから、この種の取り違えは起きていません。
やっていないこともあります。文字コードの自動判定をClaudeに任せることはしていません。判定は当たることが多いものの外れることがあり、外れたときに気づきにくいためです。人がプレビューで目視する工程は残しています。
ここまでの内容は、実際の画面で見るほうが早く掴めます。Arke Gallery(無料会員登録)から、工場・物流・ECの技術マップ上でAIの動きを動画で確認できます。
Claude Codeで扱う場合の指定
Claude Codeでフォルダ単位のCSVを処理する場合は、会話ではなくコード側で文字コードが決まります。指示文に次の2点を書いておくと、やり直しが減ります。
「読み込むCSVはShift_JIS(cp932)です。書き出すCSVはUTF-8(BOM付き)にしてください。」
読み込みと書き出しで文字コードが違うことはよくあります。片方しか書かないと、もう片方は既定値で処理されて化けます。両方を明示してください。
混在しているフォルダを扱うなら、次のように頼む手もあります。
「フォルダ内のCSVは文字コードが混在しています。1ファイルずつ判定して読み込み、結果はすべてxlsxで出力してください。判定できなかったファイルはファイル名を一覧で報告してください。」
判定できなかったものを黙って飛ばさずに報告させるところが要点です。Claude Codeでの繰り返し処理はClaudeで自動化するコマンドの作り方にまとめています。
比較表:出力形式ごとの向き不向き
| 形式 | 文字化け | Excelでそのまま開けるか | 向いている場面 |
|---|---|---|---|
| xlsx | 起きない | 開ける | Claudeとのやりとり全般。当社の既定 |
| CSV(UTF-8・BOM付き) | 起きにくい | 開ける | CSVで受け取る必要があり、受け側がUTF-8対応のとき |
| CSV(UTF-8・BOMなし) | Excelで化ける | ダブルクリックでは化ける | Web系システムへの取り込み用。人が開かない前提 |
| CSV(Shift_JIS) | 一部の文字が欠ける | 開ける | 取り込み先がShift_JISしか受け付けないとき |
Shift_JISは表現できる文字の範囲が狭く、絵文字や一部の漢字(外字・環境依存文字)が変換時に欠けます。取り込み先の都合で選ぶ形式であって、積極的に選ぶ理由はありません。
失敗パターン(つまずきやすい5つ)
- 化けたまま渡して、集計だけ見て確認を終える: 合計は合うのに内訳が割れます。渡す前に、Claudeへ「先頭5行をそのまま表示して」と頼んで目視するのが最短の確認です
- メモ帳で開いて「化けていない」と判断する: メモ帳とExcelは判定の仕方が違います。Excelで開いて確認してください
- 拡張子を
.csvから.xlsxに手で書き換える: 中身は変わらないため壊れたファイルになります。Excelで開いて「名前を付けて保存」から形式を変えてください - 出力の文字コードを指定し忘れる: 指定がないとBOMなしUTF-8になることが多く、Excelで開いた瞬間に化けます。CSVで受け取るなら毎回書き添える運用にしてください
- 一部の文字だけの化けを文字コードのせいにする: 「①」「㈱」「〜」だけが崩れている場合は機種依存文字で、文字コードを変えても直りません。置換するか、xlsxに寄せてください
よくある質問
Q. いちばん手っ取り早い対処は何ですか? CSVをやめてxlsxにすることです。文字コードを選ぶ余地がなくなるため、判断も確認も不要になります。CSVを使う理由が「取り込み先がCSVしか受け付けない」以外にないなら、xlsxに寄せてください。
Q. Macでも同じことが起きますか? Mac版のExcelでも、CSVの文字コードの推測は行われます。ただしWindows版とは既定の扱いが異なり、同じファイルでも結果が違うことがあります。環境をまたいでCSVをやりとりするなら、なおさらxlsxが安全です。
Q. Googleスプレッドシートで開けば直りますか? スプレッドシートのインポート画面でも文字コードを指定できます。ただしそこでxlsxに書き出してからClaudeに渡すなら、最初からExcelの[テキストまたはCSVから]で済ませるほうが工程が短くなります。
Q. すでに化けてしまったファイルは元に戻せますか? 元のファイルが残っていれば戻せます。化けているのは読み方が違うだけで、ファイル自体は壊れていません。正しい文字コードで開き直せば読めます。戻せないのは、化けた状態で上書き保存してしまった場合です。作業前のコピーを残す運用にしてください。
Q. Claudeに「文字コードを直して」と頼めば済みませんか? Claude Codeを使っていてファイルを直接扱える場合は、変換自体は頼めます。ただし判定が外れたときに、化けたまま処理が進んで気づきにくいという問題が残ります。当社は判定だけは人がプレビューで確認する運用にしています。
まとめ:切り分けてから、xlsxに寄せる
日本語の文字化けは、UTF-8とShift_JISのすれ違いと、BOMなしUTF-8をExcelが誤読することの2つでほぼ説明がつきます。まず「渡すときに化けたのか、開くときに化けたのか」を切り分け、それから手を打ってください。
そのうえで、恒久的な対処は1つです。ClaudeとのやりとりはCSVを経由せず、xlsxに寄せる。 これで文字コードを考える場面そのものがなくなります。
次に読むなら、Claude に Excel を読み込ませる方法で渡し方の手順を、全体像は親ページのClaude で Excel を自動化する使い方をご覧ください。
在庫や売上のCSVを扱う方は、突き合わせと分析の手順をClaudeで在庫管理をする手順にまとめています。
モール別のCSVを毎月手作業で揃えるのではなく、Amazon・楽天・自社ECを横断して毎日自動で在庫と売上を突き合わせる仕組みが必要になった場合は、当社が開発・運営するEC在庫最適化システム S-walletがあります。14日間無料トライアルからお試しいただけます。
在庫金額がどれだけ圧縮できるかの目安だけ先に知りたい場合は、30秒で在庫圧縮メリットを試算できます(簡易試算であり、結果を保証するものではありません)。
AI活用の実例はArke Gallery(無料)で動画にして公開しています。