【发布时间】:2014-05-25 12:28:39
【问题描述】:
我有几行包含像这些行这样的特殊字符:
CommunautéFinancièreAfricaineBEACFranc(XAF) CommunautéFinancièreAfricaineBCEAOFranc(XOF)
但是,当我将这些行写入文本文件时,结果如下:
CFACommunaut�Financi�reAfricaineBEACFranc CFACommunaut.Financi.reAfricaineBCEAOFranc
这就是我写这些行的方式:
File.WriteAllLines(@"c:\file5.txt", lines);
我还通过传递Encoding 尝试了File.WriteAllLines() 的第三个参数。但这也无济于事。
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) 中显示得非常好,我在其中读取了所有内容。
【问题讨论】:
-
我认为您在正确的编码机架上。不确定您需要哪一个,但应该是处理这些特殊字符的那个。
-
我很想将其作为重复项关闭(例如 /questions/1025332/determine-a-strings-encoding-in-c-sharp 或 stackoverflow.com/questions/5864272/…)。您所要做的就是了解编码是什么,并找到正确的编码。
-
如何获得结果?你的文本文件编辑器支持 Unicode 吗?
-
@CodeCaster,它只是记事本。我不知道它是否支持 unicode。
-
@Tim,我都试过了,但我觉得很奇怪,从一个文本文件到另一个文本文件都很好,我得到了这个结果。
标签: c# file-io special-characters file.readalllines