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

C#中StreamReader读取CSV字符串时双引号的处理机制问询

CSV读取时引号转义问题

代码实现

using (Stream dataStream = resp.GetResponseStream())
{
    using (StreamReader rdr = new StreamReader(dataStream))
    {
        output = (String)rdr.ReadToEnd();
        rdr.Close();
    }
    // Close up everything...
    dataStream.Close();
}

场景说明

变量output加载的是引号分隔、转义规则类似JSON的CSV数据,示例内容如下:

"abc","def","g\"hi"

核心问题

这些双引号在output中会被转换为双写双引号吗?比如变成下面这样:

""abc"",""def"",""g\""hi""

我需要处理示例中"g\"hi"这类带转义引号的内容,想明确读取后的实际格式。


解答

你的代码只是原样读取流中的字节并转换为字符串,不会对CSV里的引号做任何自动转换。也就是说:

  • 原CSV里的"abc"在output里还是"abc"
  • 原CSV里的"g\"hi"在output里还是"g\"hi"(注意这里的\"是转义字符,实际字符串中存储的是一个",前面带反斜杠)

代码里的StreamReader.ReadToEnd()只会按指定编码(默认UTF-8)把流的内容完整读成字符串,不会识别CSV格式,也不会做任何格式转换。如果需要处理CSV的转义规则(比如把\"解析成单个",或者处理双写引号的情况),你需要自己实现解析逻辑,或者用专门的CSV处理库。


内容的提问来源于stack exchange,提问作者A. Guattery

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:07:04