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

C#读取文本文件时List集合出现双反斜杠异常问题

解决List中出现双反斜杠的问题

首先要明确:控制台和调试放大镜显示正常,说明实际读取到的字符串本身并没有双反斜杠——你在调试器里查看List元素时看到的双反斜杠,只是VS调试器为了转义显示的格式,并非字符串真实内容。可以通过以下方式验证:

  • 把List中的元素写入新文件,打开查看实际内容
  • 在代码里执行Console.WriteLine(string.Join("\n", data)),看输出是否正常

如果验证后发现实际字符串真的带有双反斜杠,那大概率是大型机文本文件的编码问题。大型机常用EBCDIC编码,而StreamReader默认用UTF-8读取,编码不匹配会导致字符转义异常。解决方法是指定正确的编码:

// 替换为大型机对应的编码,比如IBM037是常见的EBCDIC编码
using (StreamReader file = new StreamReader(textFile, Encoding.GetEncoding("IBM037")))
{
    string ln;
    while ((ln = file.ReadLine()) != null)
    {
        Console.WriteLine(ln);
        data.Add(ln);
    }
    // using块会自动关闭文件,无需手动调用file.Close()
}

另外补充:你的代码里file.Close()是多余的,using语句会自动释放StreamReader资源并关闭文件,删掉即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:15:56