我有一个csv文件,其中包含法语和德语中的特殊字符,例如:é,ü,ö。。。这个文件需要在程序中重新排列成不同的csv格式。问题是结果文件中的特殊字符被替换为�还是只是?我检查并阅读源文件不好:
Encoding encoding = Encoding.GetEncoding("utf-8");
string fileName = @"D:tempsourceFile.csv";
var lines = File.ReadAllLines(fileName, encoding);
当我检查行列表中的内容时,已经有特殊的字母被替换为?,所以文件的读取一开始就不好。我尝试了各种编码,但都不起作用。原始csv文件是ANSI,我不知道为什么它根本不起作用。
最终结果被写入结果文件:
TextWriter tw = new StreamWriter(@"d:tempResult.csv", false, encoding);
foreach (var item in result)
{
tw.WriteLine(item.Key + ";" + item.Value);
}
tw.Close();
这种编码似乎从一开始就是个问题。我尝试了包括编码在内的各种方法。默认情况下,什么都不起作用。求你了,救命!
我有同样的问题:
如果默认值不起作用,您可以尝试一些编码:
"Windows 1252" -> Encoding.GetEncoding(1252); #Europe Ouest (Windows)
"ISO-8859-1" -> Encoding.GetEncoding(28591); #Europe occidentale (ISO)