CSVの文字化けを直すツール
Excelで開くと「繧医≧縺薙◎」のように化けてしまうCSVを、正しく開ける形式に変換します。
文字コードは自動で判定します。
ファイルはブラウザの中だけで処理され、どこにも送信されません。
社内のデータでも安心して使えます。
なぜCSVは文字化けするのか
文字化けの原因は、ファイルを保存したときの「文字コード」と、開くときに想定している「文字コード」が食い違っていることです。
文字コードとは、文字をコンピュータ上の数字に置き換えるときの対応表のことです。 日本語では主に次の2つが使われています。
- UTF-8 — 世界中の文字を扱える現在の標準。Webサービスや基幹システムからの出力はほぼこれ
- Shift_JIS — 日本で古くから使われてきたもの。Windowsの古いソフトはこれを想定している
問題はExcelの挙動にあります。ExcelでCSVをダブルクリックして開くと、 Windowsの日本語版ではShift_JISだと思い込んで読もうとします。 そこにUTF-8のファイルを渡すと、対応表が違うので意味不明な文字が並びます。これが文字化けの正体です。
BOMを付けると直る理由
BOM(ボム)とは、ファイルの先頭に付ける3バイトの短い目印のことです。 中身としては見えませんが、「このファイルはUTF-8ですよ」とソフトに伝える札の役割をします。
ExcelはこのBOMを見つけると、Shift_JISだという思い込みをやめてUTF-8として読み直します。 その結果、文字化けせずに開けるようになります。
このツールの「Excel用(BOM付きUTF-8)」は、この処理をしています。 中身の文字は一切変えず、先頭に目印を足すだけです。
逆に、BOMを付けてはいけない場合
基幹システムや会計ソフトにCSVを取り込む場合、BOMが邪魔になることがあります。 システム側がBOMを「見えない文字」としてそのまま読んでしまい、 1列目の項目名が一致せずエラーになる、という不具合が起きます。
「取り込みエラーになる」「1行目だけおかしい」という場合は、 BOMなしのUTF-8を試してください。このツールで切り替えられます。
タブ区切り(TSV)が便利な場面
データの中にカンマが含まれていると(住所や金額など)、カンマ区切りでは列がずれることがあります。 そういうときはタブ区切りにすると安定します。
また、タブ区切りのデータはExcelにそのまま貼り付けられます。 テキストエディタで開いて全部コピーし、Excelのセルに貼るだけで、きれいに列が分かれます。 ファイルを開く手間すら省けるので、覚えておくと便利です。
よくある質問
ファイルはどこかに送信されますか
送信されません。このツールはブラウザの機能だけでファイルを読み込み、変換しています。 サーバーへのアップロードは一切行っていません。 通信を切った状態でも動作しますので、心配な場合は一度ページを開いたあとに Wi-Fiを切って試してみてください。社内の顧客データや売上データでも安心して使えます。
文字コードの判定は正確ですか
ほとんどの場合は正しく判定できますが、絶対ではありません。 判定の仕組みは、まず先頭のBOMを確認し、次にUTF-8として矛盾なく読めるかを試し、 読めなければShift_JISとして扱う、というものです。 プレビューで日本語が正しく表示されているか確認してからダウンロードしてください。
大きなファイルも変換できますか
できますが、すべての処理をブラウザの中で行うため、 数十MBを超えるファイルでは画面が固まったように見えることがあります。 20MBを超える場合は警告を表示します。
変換すると中身のデータは変わりますか
文字コードの変換だけであれば、中身は一切変わりません。表示のされ方が変わるだけです。 区切り文字を変更した場合は、データ中に含まれる区切り文字が正しく扱われるよう、 必要に応じて引用符(")が付け直されます。
Excelで開いたら数字の頭の0が消えました
これは文字化けとは別の問題で、Excel側の仕様です。 「0123」のような値を数値と判断して「123」にしてしまいます。 これを防ぐには、CSVをダブルクリックで開くのではなく、 Excelの「データ」タブ →「テキストまたはCSVから」で読み込み、 その列の形式を「文字列」に指定してください。