我使用下面的代码来读取包含外来字符的文本文件,该文件采用 ANSI 编码,在记事本中看起来很好。下面的代码不起作用,当读取文件值并在数据网格中显示字符时,字符显示为正方形,其他地方是否还有其他问题?
StreamReader reader = new StreamReader(inputFilePath, System.Text.Encoding.ANSI);
using (reader = File.OpenText(inputFilePath))
Thanks
Update 1:我已经尝试了下找到的所有编码System.Text.Encoding
。并且都无法正确显示文件。
Update 2:我已将文件编码(重新保存文件)更改为 unicode 并使用System.Text.Encoding.Unicode
而且效果很好。那么为什么记事本能够正确读取呢?为什么没有System.Text.Encoding.Unicode
读取 ANSI 文件?
您还可以尝试默认编码,它使用当前系统的 ANSI 代码页。
StreamReader reader = new StreamReader(inputFilePath, Encoding.Default, true)
当您尝试对原始文件使用记事本“另存为”菜单时,请查看编码组合框。它会告诉您记事本猜测该文件使用哪种编码。
另外,如果它是 ANSI 文件,则 detectorEncodingFromByteOrderMarks 参数可能不会有太大帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)