Сначала давайте посмотрим код:
//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))?
Спасибо.