Этот вопрос о переполнении стека касается 16-битных символов Юникода.Я хотел бы подобное решение, которое поддерживает 32-разрядные символы.См. эту ссылку для получения списка различных диаграмм Юникода .Например, 32-разрядными символами являются Музыкальные символы .
. Ответ на вопрос, связанный выше, не работает, поскольку он преобразует значение System.Int32 какSystem.Char, который является 16-битным типом.
Редактировать: Позвольте мне уточнить, что меня не особо волнует отображение 32-битного символа Юникод, я просто хочу сохранить символ в строковой переменной.
Редактировать # 2: Я написал фрагмент PowerShell, который использует информацию в отмеченном ответе и его комментариях.Я бы хотел добавить это в другой комментарий, но комментарии не могут быть многострочными.
$inputValue = '1D11E'
$hexValue = [int]"0x$inputValue" - 0x10000
$highSurrogate = [int]($hexValue / 0x400) + 0xD800
$lowSurrogate = $hexValue % 0x400 + 0xDC00
$stringValue = [char]$highSurrogate + [char]$lowSurrogate
Dour High Arch все еще заслуживает похвалы за ответ, который помог мне наконец понять суррогатные пары.