繁体   English   中英

C# 设置编码读写带特殊字符的文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM