仕様と根拠
見つける壊れ方
RFC 4180 の 2 節にそって 1 文字ずつ読みます。引用符で囲まない値の中の二重引用符(規則 5)、引用符で閉じた後に続く文字(規則 7)、最後まで閉じない引用符(規則 6・7)の 3 種類を見つけます。行番号は元のテキストの何行目かで示し、値が複数行にまたがる場合は始まりの行です。
直し方
前の 2 種類は、値の文字をそのまま残して値全体を二重引用符で囲み、中の二重引用符を 2 つ重ねます。閉じない引用符は、その行の終わりで閉じたと見なして引用符を取り除きます。正しい引用符の値は元のまま引用符で囲んで出力し、改行は CRLF にそろえます。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 4180 Common Format and MIME Type for Comma-Separated Values (CSV) Files | 2026年10月29日 | 2 節の 5(引用符なしの値に二重引用符を含めない)・6(改行・引用符・区切りを含む値は囲む)・7(値の中の引用符は 2 つ重ねる) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 閉じ忘れの修復は「その行の終わりで閉じる」という推測です。次の行まで続く値のつもりだった場合は結果が違うので、対比を必ず確認してください。
- 値の数が行ごとに違う問題は直しません。修復後も合わない行を警告で知らせるだけです。
- ファイルは UTF-8 として読みます。Shift_JIS の CSV は文字化けするため、UTF-8 で保存し直してから使います。
- 値の意味(日付・金額などの形式)は判定しません。引用符の構造だけを見ます。
ご利用にあたって
- 修復案は規則への適合を目的にしたもので、元のデータの意図を保証しません。重要なデータは元のファイルを残したうえで使ってください。
- 大きなファイルはお使いの端末の性能によって処理に時間がかかることがあります。