gpt4 book ai didi

.net - FileInfo.OpenText() 无法读取特殊字符üò°

转载 作者:行者123 更新时间:2023-12-03 07:28:49 24 4
gpt4 key购买 nike

有一些文本文件,在 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进行控制。 OpenText() 用于 UTF8 编码。 WikiUFT8

最佳答案

fi.OpenText 打开一个采用 UTF8 编码的 StreamReader。如果您需要不同的编码,请使用它:

using (var reader = new StreamReader(fi.FullName, Encoding.Unicode))
fileText = reader.ReadToEnd();

当然,您实际上根本不需要 FileInfo 对象,因为上述调用仅使用路径。

关于.net - FileInfo.OpenText() 无法读取特殊字符üò°,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com