在C#文本文件读取中发出大约65533。

我创建了一个示例应用程序来加载所有特殊字符,同时将粘贴从Openoffice编写器复制到记事本。 双重代码不同,当我尝试加载它时。

var lines = File.ReadAllLines("..\\ter34.txt"); 

这会产生65533问题的问题,文本文件包含:

  

这已更改为符号:

    

U + FFFD是“Unicode替换字符”,如果您尝试读取的数据对于用于将二进制数据转换为文本的编码无效,则使用该字符。

例如,如果您使用ISO-8859-1编写文件,但尝试使用UTF-8 读取它,那么您可能很容易得到一些字节序列,这些字节序列不是有效的UTF-8。 每个无效字节将被转换(默认情况下)为U + FFFD。

基本上,您需要为File.ReadAllLines提供正确的编码,作为第二个参数。 这意味着您首先需要知道文件的编码。