2013-03-13 157 views
0

在C#控制台应用程序中,我使用的是stringbuilder to write data to a local file。这似乎在小的损失如何正确管理该待处理不当特殊字符处理c中的特殊字符#

Muñoz 

输出到文件

Muñoz 

+0

字符串构建器没有编码的概念。 – 2013-03-13 17:44:20

+0

一切工作正常;该文件的内容被编码为UTF-8。另外,'StringBuilder'不知道关于文件的任何信息。 – 2013-03-13 17:44:42

+0

是的,我知道我正在使用StringBuilder与File.WriteAllText( – Lloyd 2013-03-13 17:51:15

回答

5

您的C#代码正在正确编写一个UTF8文件,其中ñ被编码为3个字节。

你错了读取该文件作为不同的编码,显示这些字节为三个不需要的字符。
您需要将文件读取为UTF8。

+0

)有趣的是,我输出的文件为.csv,我如何指定如何以UTF8格式读取文件? – Lloyd 2013-03-13 17:52:32

+0

这样做了,我更改了文件。 SaveToFile从File.WriteAllText(filename,sb.ToString());到File.WriteAllText(filename,sb.ToString(),Encoding.UTF8);非常感谢,Muñoz,Peña,Bråten等人也都很感谢你。:) – Lloyd 2013-03-13 17:58:31