You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CsvHelper读取TSV数据时如何保留未转义双引号

解决CsvHelper读取带未转义双引号的TSV数据并保留引号的方案

关键配置调整

要让CsvHelper正确读取并保留未转义的双引号,需调整两个核心配置:

  • 修正转义字符写法:你当前配置里的Delimiter = "/t"和NewLine = "/r/n"是错误的,C#中制表符和回车换行的转义字符为反斜杠,应改为"\t"和"\r\n"。
  • 禁用坏数据检测:设置BadDataFound = null,让CsvHelper不再把字段内未转义的双引号判定为无效数据,从而完整保留原始内容。

修改后的完整配置

new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = true,
    Delimiter = "\t", // 修正为正确的制表符转义
    NewLine = "\r\n", // 修正为正确的换行符转义
    IgnoreBlankLines = true,
    MissingFieldFound = null,
    HeaderValidated = null,
    CacheFields = true,
    PrepareHeaderForMatch = args => args.Header.Trim(),
    TrimOptions = TrimOptions.Trim,
    LineBreakInQuotedFieldIsBadData = false,
    BadDataFound = null // 关键:忽略未转义引号的坏数据判定
};

方案说明

CsvHelper默认会将字段内未转义的双引号识别为格式错误的坏数据,触发BadDataFound回调。将BadDataFound设为null后,工具会跳过这类格式校验,直接按原始内容读取字段值,最终就能完整保留Value "1"这类带未转义引号的内容。

验证效果

使用上述配置读取你的示例TSV数据后,各字段值会被正确读取为:

  • Column1: Value "1"
  • Column2: Value "2"
  • Column3: Value "3"

内容的提问来源于stack exchange,提问作者Pawel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:42:40