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

kev*_*vin 31 c# file streamwriter

我无法读到我试过的那些特殊字符

第一种方式#

string xmlFile = File.ReadAllText(fileName);
Run Code Online (Sandbox Code Playgroud)

第二种方式#

FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string s = r.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

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

更新###

我也尝试所有编码

string xmlFile = File.ReadAllText(fileName, Encoding. );
Run Code Online (Sandbox Code Playgroud)

但仍然不明白那些特殊的人物.

Ili*_*a G 78

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

using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
    r.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

  • string [] lines = File.ReadAllLines(fileName,System.Text.Encoding.GetEncoding("iso-8859-1")); 也很完美 (6认同)

Kak*_*shi 5

StreamReader sr = new StreamReader(stream, Encoding.UTF8)
Run Code Online (Sandbox Code Playgroud)