首先,让我们看看代码:

//The encoding of utf8.txt is UTF-8
StreamReader reader = new StreamReader(@"C:\\utf8.txt", Encoding.UTF8, true);
while (reader.Peek() > 0)
{
    //What is the encoding of lineFromTxtFile?
    string lineFromTxtFile = reader.ReadLine();
}

正如乔尔在他著名的《美国时报》上所说:
如果在内存、文件或电子邮件中有字符串,则必须知道该字符串的编码方式,否则无法正确解释该字符串或将其显示给用户。”
所以我的问题来了:字符串linefromtxtfile的编码是什么?utf-8(因为它来自用utf-8编码的文本文件)?或者utf-16(因为.net中的字符串是“unicode”(utf-16))?
谢谢。

最佳答案

.NET strings是Unicode。编码不起作用,直到你下次需要使用它。例如,如果要将其写入文件,则将指定输出编码。但是,由于.NET通过库调用处理字符串的所有操作,因此在内存中如何表示字符串并不重要。

10-07 19:10
查看更多