Я пытаюсь прочитать высокий символ 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