Этот код кодировки Unicode кодируется в UTF32. .NET и Windows кодируют Unicode в UTF16, вам придется переводить. UTF16 использует «суррогатные пары» для обработки кодовых точек выше 0xffff, аналогичный подход, такой как UTF8. Первый код пары - 0xd800..dbff, второй код - 0xdc00..dfff. Попробуйте этот пример кода, чтобы увидеть, что на работе:
using System;
using System.Text;
class Program {
static void Main(string[] args) {
uint utf32 = uint.Parse("1D0EC", System.Globalization.NumberStyles.HexNumber);
string s = Encoding.UTF32.GetString(BitConverter.GetBytes(utf32));
foreach (char c in s.ToCharArray()) {
Console.WriteLine("{0:X}", (uint)c);
}
Console.ReadLine();
}
}
Не является максимальным значением unicode только FFFF? В чем смысл unicode 1D0EC? –
ближайшим решением, которое я нашел, был этот: http://stackoverflow.com/questions/1615559/converting-unicode-strings-to-escaped-ascii-string , но он работал только под юникодом "\ uFFFF " – Jack
Что вы имеете в виду под его символом? Во время отображения символ преобразуется в его визуальное представление. Вы хотите конвертировать в UTF8? к определенной кодировке? У Джоэла Спольского есть хорошая статья о Юникоде - это сбивает с толку. –