Юникод символы в строке - iphone - PullRequest
9 голосов
/ 14 марта 2011

Я работаю над математическим приложением и мне нужно вывести показатели на экран.

Я обнаружил, что этот код будет работать:

NSLog(@"x\u2070 x\u00B9 x\u00B2 x\u00B3 x\u2074 x\u2075 x\u2076 x\u2077 x\u2078 x\u2079");

Отображается: x⁰ x¹ x² x³ x⁴ x⁵ x⁶ x⁷ x⁸ x⁹

Это также работает:

NSString *testString = @"8.33x10\u00B3";
NSLog(@"test string: %@", testString);

отображает: тестовую строку: 8,33x10³

Даже установка метки на экран iPhone корректно отображается:

NSString *testString = @"8.33x10\u00B3";
Answer1Label.text = testString;

Однако, когда я извлекаю строку из .plist с надписью «8.33x10 \ u00B3» и отображаю ее на экране, она просто отображается как «8.33x10 \ u00B3» вместо 8.33x10³

Нужно ли добавить дополнительный символ перед \ u00B3, чтобы он мог его распознать?

Спасибо за вашу помощь!

1 Ответ

21 голосов
/ 14 марта 2011

\ uXXXX преобразуется в юникод во время компиляции, поэтому вы не ожидаете, что он будет магически преобразован путем чтения .plist.

Попробуйте открыть файл plist в Xcode в «текстовом режиме»(щелкните правой кнопкой мыши по вашему plist-файлу, Open As -> Plan Text File), затем отредактируйте нужную строку, чтобы она содержала специальные символы, используя текст формы:

⁰

вместо обычного \u2070, который выИспользую в коде.Затем, если вы сохраните свой plist, закроете его и снова откроете, дважды щелкнув, вы увидите обычное представление plist editor и оно будет содержать ваши специальные символы.

В качестве альтернативы рассмотрите возможность использования средства просмотра символов OS X (он же палитра символов) для ввода текста непосредственно в редактор plist в Xcode. Подробнее.

...