[英]C# Set encoding to read and write File with special characters
我有一个 csv 文件,其中包含法语和德语的特殊字符,例如:é、ü、ö... 这个文件需要在程序中重新排列为不同的 csv 格式。 问题是结果文件中的特殊字符被替换为�还是只是? 我检查并阅读源文件不好:
Encoding encoding = Encoding.GetEncoding("utf-8");
string fileName = @"D:\temp\sourceFile.csv";
var lines = File.ReadAllLines(fileName, encoding);
当我检查行列表中的内容时,已经有特殊字母被替换为?,所以文件的读取首先不好。 我尝试了各种编码,但它们都不起作用。 原始 csv 文件是 ANSI,我不知道为什么这根本不起作用。
最终结果被写入结果文件:
TextWriter tw = new StreamWriter(@"d:\temp\Result.csv", false, encoding);
foreach (var item in result)
{
tw.WriteLine(item.Key + ";" + item.Value);
}
tw.Close();
这种编码似乎从一开始就是一个问题。 我尝试了各种方法,包括 Encoding.Default,没有任何效果。 请帮忙!
我有同样的问题:
如果 Default 不起作用,您可以尝试一些编码:
"Windows 1252" -> Encoding.GetEncoding(1252); #Europe Ouest (Windows)
"ISO-8859-1" -> Encoding.GetEncoding(28591); #Europe occidentale (ISO)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.