Столкнулся со странным поведение метода Encoding.GetChars:
byte[] utf8CharsCode = new [] { 237, 160, 130 }; //0xEDA082 == UTF8+D802
char[] utf8Chars = Encoding.UTF8.GetChars(utf8CharsCode);
Console.WriteLine(utf8Chars.Count);
for(int i = 0; i< utf8Chars.Count; i++)
Console.WriteLine("{0}-й байт : {1}", i + 1,(int)utf8Chars[i]);
/*
* Вывод в консоль:
* 1-й байт : 65213
* 2-й байт : 65215
*/
Хотя символ UTF8 с кодом 0xEDA082 существует, но метод вместо него выкидывает непонятный массив символов со странными значениями. С чего бы это