Преобразовать суррогатную пару Unicode в буквальную строкуC#

Место общения программистов C#
Ответить
Anonymous
 Преобразовать суррогатную пару Unicode в буквальную строку

Сообщение Anonymous »

Я пытаюсь прочитать высокий символ Unicode из одной строки в другую. Для краткости я буду упростить свой код, как показано ниже: < /p>

Код: Выделить всё

public static void UnicodeTest()
{
var highUnicodeChar = "𝐀"; //Not the standard A

var result1 = highUnicodeChar; //this works
var result2 = highUnicodeChar[0].ToString(); // returns \ud835
}
Когда я назначаю highunicodechar result1 напрямую, он сохраняет буквальное значение 𝐀 . Когда я пытаюсь получить доступ к нему по индексу, он возвращает \ ud835 . Насколько я понимаю, это суррогатная пара символов UTF-16, используемых для представления персонажа UTF-32. Я почти уверен, что эта проблема связана с попыткой неявно преобразовать char в строку .

В конце я хочу Result2 , чтобы получить то же значение, что и Result1 . Как я могу это сделать?

Подробнее здесь: https://stackoverflow.com/questions/525 ... ral-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»