我有几行包含这些行的特殊字符:
CommunautéFinancièreAfricaineBEACFranc(XAF) CommunautéFinancièreAfricaineBCEAOFranc(XOF)
但是,当我将这些行写入文本文件时,我得到了这个结果:
CFACommunautFinancireAfricaineBEACFranc CFACommunautFinancireAfricaineBCEAOFranc
这是我写行的方式:
File.WriteAllLines(@"c:\file5.txt", lines);
我还通过File.WriteAllLines()
尝试了Encoding
的第3个参数。但这也没有帮助。
File.WriteAllLines(@"c:\file5.txt", lines, Encoding.UTF8);
File.WriteAllLines(@"c:\file5.txt", lines, Encoding.ASCII);
这是我阅读所有行的方式:
File.ReadAllLines(@"C:\file4.txt").ToList()
.ForEach(g =>
lines.Add(g.ToString()
.Replace("/", string.Empty)
.Replace("(", string.Empty)
.Replace(")", string.Empty))
);
疯狂的是,字符在另一个文本文件(file4.txt)中显示得非常好,我在其中阅读了所有内容。
答案 0 :(得分:1)
除非您添加BOM,否则记事本无法识别UTF-8。
您有三种选择:
var utf8WithBom = new Utf8Encoding(true, true)
作为第二个参数。使用旧版编码。指定Encoding.Default
作为第二个参数。
生成的文件将损坏当前代码页中不存在的字符。它将无法在某些其他国家/地区使用的系统上正确显示。
IMO这个是一个坏主意,但我仍然提到它是完整的。