Печать кода Unicode Astral Plane указывает на консоль, используя int

Пожалуйста, смотрите здесь для связанных вопросов.

Тем не мение, char идет к 0xffff (или же 65535). Мне нужно написать 0xd800df46 (или же 66374), Готическая буква Faihu, так что кастинг int в char не будет работать. Я делаю преобразование в порядке, то есть я получаю правильное целое число, что означает, что я правильно вычисляю суррогатные пары, но я не знаю, как его "отрендерить", преобразовать в символ для вывода в виде глифа.

Обратите внимание, что я не могу использовать \Unnnn по... ну, теоретическим причинам.

Спасибо.

1 ответ

Решение

Хорошо, вам нужно преобразовать одно целое число в суррогатную пару, которую вы бы представляли в виде строки:

string x = char.ConvertFromUtf32(66374);

Для большего количества операций, чем это, вы можете использовать мой Utf32String класс в MiscUtil, а также различные другие методы в System.Char,

Другие вопросы по тегам