CSV文字化けお直し

CSVファイルをこの枠に落とすだけで、文字コードを見分けて Excelでそのまま開ける形と古い基幹システムが読めるShift_JISの形に書き分けます。 すでに化けてしまったファイルも、バイトが生きていれば元に戻します。

🔒 落としたファイルはどこにも送りません(変換はすべてこの端末の中で動きます)
ほんとに送っていないの? ご自分で確かめられます
  • ネットを切ってから使ってみてください。 このページを開いたあとでWi-Fiを切っても、変換も保存も同じように動きます。 送っているなら動きません。
  • このページは、外部への通信そのものをブラウザ機能で禁止しています。 Content-Security-Policy: connect-src 'none' を宣言しているため、 通信のしくみ(fetch・XHR・WebSocket・sendBeacon)がどれも使えません。 仮に送ろうとしてもブラウザが止めます。
  • 開発者ツール(F12)の「ネットワーク」を開いたまま使ってみてください。通信は1本も増えません。
  • このページにアクセス解析タグは入れていません(上の通信禁止と両立しないため)。
  • この1ファイルを保存して、社内の共有フォルダに置いても同じように動きます。 外部ライブラリを1つも読み込んでいません。

① CSVファイルを開く

📄
ここにCSVファイルを落とす/ クリックして選ぶ
.csv .txt .tsv / 80MBまで / このファイルは端末から出ません
ファイルではなく、化けた文字列を貼って直したいとき

🔴 先に読んでください。画面に出ている化けた文字をコピーして貼っても、 直せないことのほうが多いです。「�」に変わってしまった文字は、そこでバイトが捨てられていて、 もう元の字が残っていません。 直したいときは、化けた画面ではなくファイルそのものを上の枠に落としてください。 (それでも貼って試したい方のために、この欄を残しています)

② 見立て

上の枠にCSVファイルを落としてください。

③ 保存する(相手に合わせて選ぶ)

UTF-8(BOM付き)/改行CRLF
迷ったらこれ。ダブルクリックでExcelがそのまま開きます。

Shift_JIS(CP932)/改行CRLF
「文字コードはシフトJISで」と言われたときはこちら。 変換できない文字があれば、保存する前に手を止めて確かめます。

UTF-8(BOMなし)/改行LF
プログラムに読ませるならこちら。BOMを嫌う仕組みが多いためです。

④ この道具で分かること・分からないこと

✅ 機械でやれること

  • 文字コードの見分け。UTF-8(BOMあり/なし)・Shift_JIS(CP932)・EUC-JP・UTF-16 を見分けます。 先頭にBOMという目印があるときは推測ではなく確定です。
  • 化けたファイルを元に戻す。UTF-8のファイルをShift_JISだと思って開いてしまった形の化けは、 ファイルから読ませてもらえれば元に戻せます。バイトはまだ生きています。
  • Shift_JISに書けない文字の名指し。何の字が何行目にあるかを出します。 黙って消したりはしません。
  • いわゆる機種依存文字の洗い出し。①㈱髙﨑 のような字は Shift_JISには入っていますが、JISの基本の範囲外なので受け取る側で落ちることがあります。 そこを分けて出します。
  • 列数のそろっていない行・引用符の閉じ忘れ・改行コードの混在。 取り込みエラーの原因になる箇所を、行番号で示します。

⚠️ この道具では分からないこと

  • 「�」になった文字は元に戻せません。 読めなかった時点でバイトが捨てられていて、何の字だったかは残っていません。 推測で埋めることもしません。元のファイルからやり直してください。
  • 文字コードの判定は推定です(BOMがあるときを除く)。 そのため必ず中身の先頭を並べて出します。日本語として読めるかどうかは、目で見て確かめてください。
  • Excelが開いたときに形を変えてしまう問題は、この道具では直りません。 郵便番号の先頭の0が消える、「1-2」が日付になる、13桁の番号が 8.70011E+12 になる——これはファイルの中身ではなく Excelの読み方の問題です。この道具はファイルの中身を正しく保ちます。
  • 中身の意味は見ません。金額や日付が正しいかどうかは判定しません。
  • Shift_JISで保存し直すと、元のファイルとバイト単位では同じになりません。 Shift_JISには同じ字が2箇所に入っている組が398通りあり(≒ ≡ ∫ など。実測しました)、 書き出すときはどちらか一方を選ぶことになります。この道具は JISの基本の範囲側を選びます(受け取る側で落ちにくいため)。 見た目も意味も変わりませんが、元ファイルとバイトを一致させたい用途には向きません。
  • Shift_JISに変換できた = 相手のシステムで通る、ではありません。 受け取る側が対応している文字の範囲は、相手の仕様を確かめてください。