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

使用CSVHelper读取ANSI编码CSV文件时英镑符号显示异常

解决CSVHelper读取英镑符号显示菱形问号的问题

核心问题是文件编码识别错误,自动检测编码的方式有时会失效,尤其是针对带特殊符号的旧编码文件(比如Windows-1252,很多含英镑符号的CSV采用这个编码)。直接指定正确编码即可解决:

修正后的代码

var csvConfig = new CsvConfiguration(new CultureInfo("en-GB"))
{
    ShouldSkipRecord = (row) => row.Row.Parser.Row <= 4
};

// 直接指定Windows-1252编码(若无效可尝试ISO-8859-1)
using var streamReader = new StreamReader(_fileName, Encoding.GetEncoding(1252));
using var csvReader = new CsvReader(streamReader, csvConfig);

var records = csvReader.GetRecords<WebApi.Entities.Csv.Transaction>();

foreach (var record in records)
{
    System.Diagnostics.Debug.WriteLine(record.PaidIn);
}

额外排查建议

  • 确认Transaction类的PaidIn字段类型:如果是数值类型,CSVHelper会自动剥离货币符号,建议先改为string类型验证符号是否被正确读取,再按需做数值转换
  • 验证输出载体的编码:Debug输出窗口可能因编码不兼容显示问号,可将读取到的内容写入UTF-8编码的文件,确认符号是否正常保存

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:20:15