.NET использует UTF-16 .
С System.String на MSDN :
"Каждый символ Unicode в строке определяется скалярным значением Unicode, также называемым кодовой точкой Unicode или порядковым (числовым) значением символа Unicode. Каждая кодовая точка кодируется с использованием кодировки UTF-16 и числового значение каждого элемента кодировки представлено объектом Char. "