C# 如何读取特殊字符,如éâ;和其他的C语言#

C# 如何读取特殊字符,如éâ;和其他的C语言#,c#,file,streamwriter,C#,File,Streamwriter,我看不懂那些特殊的字符 我试过这样做 第一路# 第二条路# 但这两种说法都不理解这些特殊字符。 我应该怎样阅读 更新### 我还尝试使用 string xmlFile = File.ReadAllText(fileName, Encoding. ); 但是仍然不理解这些特殊字符。您必须告诉StreamReader您正在像这样读取Unicode StreamReader sr = new StreamReader(stream, Encoding.Unicode); 如果您的文件是其他文件,则

我看不懂那些特殊的字符 我试过这样做

第一路#

第二条路#

但这两种说法都不理解这些特殊字符。 我应该怎样阅读

更新###

我还尝试使用

string xmlFile = File.ReadAllText(fileName, Encoding. );

但是仍然不理解这些特殊字符。

您必须告诉StreamReader您正在像这样读取Unicode

StreamReader sr = new StreamReader(stream, Encoding.Unicode);
如果您的文件是其他文件,则不存在“特殊字符”这类内容。这些可能是拉丁字符集(iso-8859-1)中的扩展ascii字符。 您可以通过向流读取器显式提供编码来读取这些内容(否则它将假定为UTF8)

这对我很有用:

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

你怎么知道你的程序不接受这些字符?你拿他们干什么?如果您将它们吐回控制台,可能是因为您的终端没有正确显示它们,但您读取的结果很好。哪些内容没有正确读取?显示一行示例文本,其中包含读取错误的数据、您观察到的结果、您期望的结果以及您如何进行观察。StreamReader默认使用UTF8。是的,我知道。但我试着读取一个包含重音等的文件文本,结果返回类似:??而不是像“á”。我将编码设置为utf8(如这里所建议的),效果很好。。。我将不得不查看代码和实际文件,看看那里发生了什么。但是根据这个默认使用UTF8编码的StreamREader init,就我所尝试的情况而言,就是这样。string[]lines=File.ReadAllLines(fileName,System.Text.encoding.GetEncoding(“iso-8859-1”);这也解决了我的问题,但我不明白为什么。在我的例子中,我的streamreader将'ë'替换为'�' 处理json文件时(使用UTF-8解析时)。为什么UTF-8肯定知道字符“ë”,而json没有我知道的编码?或者这与.NET运行时或其他相关吗?应用此选项后,我的乘法和加号问题得到解决,但撇号+S('S)无法正确显示,它被此符号的平方替换。如何解决这个问题?出于某种原因,我得到了带有这个的汉字(我需要扩展拉丁语)。
StreamReader sr = new StreamReader(stream, Encoding.Unicode);
using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
    r.ReadToEnd();
StreamReader sr = new StreamReader(stream, Encoding.UTF8)
var json = System.IO.File.ReadAllText(@"././response/response.json" , System.Text.Encoding.GetEncoding("iso-8859-1"));