CSV文件编码无法处理特殊字符,Excel打开乱码如何解决?
解决CSV文件在Excel中特殊字符乱码的问题
问题原因
你遇到的乱码是因为默认生成的CSV用了无BOM的UTF-8编码,Excel打开这类文件时会自动用系统默认编码(比如中文系统的GB2312)解析,导致特殊字符(比如░)被错误转换。
解决方案
方法1:修改代码,生成带BOM的UTF-8文件
在C#中,File.WriteAllText默认使用的UTF-8是不带BOM的,只需显式指定带BOM的UTF-8编码即可:
string row = "1001,01 ░ - 02 Room,India,0"; File.WriteAllText("MyCsv.csv", row, Encoding.UTF8);
注:.NET中的
Encoding.UTF8会自动添加UTF-8 BOM,而Encoding.UTF8WithoutBOM是无BOM版本,这里要选前者。
方法2:手动修复已生成的文件
如果已经有了乱码的CSV文件,用记事本打开后,点击「文件」→「另存为」,在编码下拉框选择「UTF-8」(不是「UTF-8无BOM」),保存后再用Excel打开就能正常显示特殊字符。
内容的提问来源于stack exchange,提问作者Anushree Sengupta
相关产品推荐
相关产品推荐

