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

使用CsvHelper读取CSV文件时特殊字符显示为问号的问题求助

CsvHelper读取CSV文件时特殊字符显示为问号的问题求助

大家好,我最近遇到一个棘手的问题,想请教下各位大佬:

我用CsvHelper(版本33.1.0)写了个读取CSV文件的程序,这个CSV文件在VS Code或者Notepad里打开时,编码显示是ANSI(Notepad的Encoding菜单可以看到),里面的短破折号(en dash)还有ä、ü、ö、ß这类变音符号都显示正常。但当我用Encoding.Default去读取这个文件时,这些特殊字符全变成了类似I�a�1的乱码/问号形式。

我已经尝试过不少方法了,比如用字符集检测工具、改用Windows 1252编码、手动修改文件编码格式,但都没解决问题。而且程序运行过程中也没有抛出任何异常或者错误,完全找不到突破口。

这是我当前的读取代码:

using (var reader = new StreamReader(filePath, Encoding.Default))
using (var csvReader = new CsvReader(reader, new CsvHelper.Configuration.CsvConfiguration(CultureInfo.InvariantCulture) 
{ 
    Delimiter = ";", 
})) 
{
    csvReader.Context.RegisterClassMap<CsvRowMap>();
    var records = new List<CsvRow>();
    records = csvReader.GetRecords<CsvRow>().ToList();
    return records;
}

有没有人遇到过类似的情况?或者能指点下我该怎么修改代码,才能正确读取这些特殊字符,让它们显示正常呢?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 10:09:35