【发布时间】:2020-04-13 11:23:05
【问题描述】:
我有一个需要读取的文件,并且必须在末尾添加一个文本。 程序因字符 "í" 而失败。 在以记事本++(UTF-8)编码打开文件时,我可以看到
在我的 C# 代码中,我尝试将其转换为默认编码,但应用程序将其更改为“?”而不是“í”。
示例代码:
string processFilePath = @"D:\Test\File1.txt";
string outfile = @"D:\Test\File2.txt";
using (StreamReader reader = new StreamReader(processFilePath))
{
using (StreamWriter writer = new StreamWriter(outfile, false, Encoding.Default))
{
writer.WriteLine(reader.ReadToEnd());
}
}
我查看了关于 SO 的类似问题(上面的代码剪断是此处的修改版本): UTF-8 to ANSI Conversion using C#
我尝试了“System.Text.Encoding”中可用的不同类型的编码 - ASCII/ UTF*/ 默认值,但我能得到的最好的是“?”而不是“í”。
我也经历过:http://kunststube.net/encoding/,确实学到了很多,但还是无法解决问题。
我还缺少什么(如果 System.Text.Encoding.ANSI 存在应该很容易)
【问题讨论】: