我有一些文本文件,它们在TextBox和TextBlock中显示许多字符作为�。
如何在.NET WPF中正确读取和显示这些文件?
文件读取,其中fi是一个FileInfo。
fileText = fi.OpenText().ReadToEnd();在WPF中,我得到了�字符和其他特殊字符。
我尝试过多种字体。
文化是en-EN的。
如果我以流的形式读取文件,我会得到特殊字符
System.IO.Stream fsIn = fi.OpenRead();
if (fsIn.Length == 0) return;
int curInt = -1;
StringBuilder sb = new StringBuilder();
while ((curInt = fsIn.ReadByte()) >= 0)
{
sb.Append((char)curInt);
} OpenText()似乎正在读取字节253中的所有特殊字符
我想我学到的是文本不是UTF8编码的。UTF8使用128-255进行控制。UTF8编码使用OpenText()。WikiUFT8
发布于 2012-06-07 06:08:06
fi.OpenText使用UTF8编码打开一个StreamReader。如果您需要不同的编码,请使用以下代码:
using (var reader = new StreamReader(fi.FullName, Encoding.Unicode))
fileText = reader.ReadToEnd();当然,您实际上根本不需要FileInfo对象,因为上面的调用只使用了路径。
发布于 2012-06-06 07:58:20
你基本上已经回答了你自己的问题。您的文本文件不是Unicode格式-它可能是某个特定代码页中的ANSI。要读取这样的文件,可以使用传入编码的StreamReader。这里有一些here示例。
https://stackoverflow.com/questions/10903120
复制相似问题