我正在设计用于格式化我拥有的某些文件的程序中调用File.ReadAllText()
。
其中一些文件包含®
(174)符号。但是,在阅读文本时,返回的字符串包含�
(174)应该位于的®
(65533)符号。
是什么原因造成的,我该如何解决?
最佳答案
这可能是由于Encoding
不匹配所致。使用ReadAllText重载,该重载允许您指定在读取文件时要使用的正确Encoding
。
除非它可以检测到UTF-32,否则默认重载将采用UTF-8。其他任何编码都会错误地通过。
我正在设计用于格式化我拥有的某些文件的程序中调用File.ReadAllText()
。
其中一些文件包含®
(174)符号。但是,在阅读文本时,返回的字符串包含�
(174)应该位于的®
(65533)符号。
是什么原因造成的,我该如何解决?
最佳答案
这可能是由于Encoding
不匹配所致。使用ReadAllText重载,该重载允许您指定在读取文件时要使用的正确Encoding
。
除非它可以检测到UTF-32,否则默认重载将采用UTF-8。其他任何编码都会错误地通过。