如何在C#中读取é,â等特殊字符

时间:2011-11-11 03:33:01

标签: c# file streamwriter

我无法阅读那些特殊字符 我试过这个

第一路#

string xmlFile = File.ReadAllText(fileName);

第二路#

FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string s = r.ReadToEnd();

但是这两个陈述都不理解那些特殊字符。 我该怎么读?

更新###

我也尝试使用

进行所有编码
string xmlFile = File.ReadAllText(fileName, Encoding. );

但仍然不明白那些特殊字符。

4 个答案:

答案 0 :(得分:67)

没有“特殊字符”这样的东西。那些可能的是从latin1集(iso-8859-1)扩展ascii字符。 您可以通过向流读取器显式提供编码来读取它们(否则它将采用UTF8)

using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
    r.ReadToEnd();

答案 1 :(得分:5)

StreamReader sr = new StreamReader(stream, Encoding.UTF8)

答案 2 :(得分:3)

您必须告诉StreamReader您正在阅读Unicode

StreamReader sr = new StreamReader(stream, Encoding.Unicode);

如果您的文件属于其他encoding, specify it as the second parameter

答案 3 :(得分:1)

这对我有用:

var json = System.IO.File.ReadAllText(@"././response/response.json" , System.Text.Encoding.GetEncoding("iso-8859-1"));