コンテンツへスキップ
uencoder

CSV ファイルをパースする方法

引用符付きフィールド、フィールド内カンマ、複数行の値を正しく処理して CSV ファイルをパースします。

问题

引用符で囲まれた値の中にカンマ、引用符、改行が含まれると、CSV パーサーが正しく動作しません。

前提条件

  • CSV 形式の理解
  • RFC 4180 の引用規則に関する知識

ステップ

  1. 1. Understand RFC 4180 rules

    Fields containing commas, double quotes, or newlines must be enclosed in double quotes. Quotes inside quoted fields are escaped by doubling them (""). A proper parser follows these rules rather than simply splitting on commas.

    入力
    "Smith, John",30
    输出
    one field: 'Smith, John'
  2. 2. Use a standards-compliant parser

    Use a CSV parser that implements RFC 4180 rather than a naive string split. The parser should handle quoted fields, escaped quotes, and multiline values. Specify the delimiter, quote character, and encoding explicitly.

    入力
    CSV with quoted fields
    输出
    correctly parsed rows
  3. 3. Handle edge cases

    Account for BOM at the start of the file, different line endings (CRLF vs LF), empty fields, and trailing delimiters. Decide on a policy for rows with inconsistent field counts. These edge cases are common in real-world CSV files.

    入力
    BOM + CRLF + empty fields
    输出
    handled gracefully

期待される結果

引用符付きフィールド、埋め込み区切り文字、複数行の値が正しく処理された、正しくパースされた CSV データ。

よくあるエラー

Naive split on comma breaks quoted fields
Never use a simple string.split(','). Use a proper CSV parser that respects quoting rules.
BOM appears as a hidden character in the first field
Detect and strip the UTF-8 BOM (EF BB BF) before parsing, or use a parser that handles it automatically.

トラブルシューティング指引

  • If rows are misaligned, check for unquoted fields containing commas or inconsistent line endings.
  • For very large files, use a streaming CSV parser to process rows one at a time.

セキュリティ上の制限

  • CSV injection: cells starting with =, +, -, or @ can execute formulas in spreadsheet apps. Sanitize if output will be opened in Excel.

関連ツール

関連用語

参考链接