Я столкнулся со странной проблемой при выполнении некоторых операций с массивом байтов вместе со строкой Юникода в C#. Ниже мой код.
Код: Выделить всё
var bytes = new byte[] {128, 216};
var strstr = Encoding.Unicode.GetString(bytes);
var newBytes = Encoding.Unicode.GetBytes(strstr);
Console.WriteLine(BitConverter.ToString(bytes));
Console.WriteLine(BitConverter.ToString(newBytes));
Довольно просто, правда? Однако newBytes — это не то же самое, что bytes, что меня шокировало. По моему мнению, GetString и GetBytes должны быть противоположными операциями. Может ли кто-нибудь сообщить мне, что это происходит?
Выход:
80-D8
FD-FF
Подробнее здесь:
https://stackoverflow.com/questions/474 ... in-c-sharp