NSString Unicode display - PullRequest
       3

NSString Unicode display

0 голосов
/ 27 июля 2011

Я хочу посмотреть на отображение нескольких юникодов, используя forLoop. Однако компилятору не нравятся «% x» или «% d» в строке для построения Unicode. Есть ли работа вокруг?

for (int k = 0; k < 16; k++){
    lbl.text =[NSString stringWithFormat:@"\u00B%x", k ];// <-- incomplete universal character name \u00B
}

спасибо

Ответы [ 2 ]

5 голосов
/ 27 июля 2011

Я не уверен, что полностью понимаю, чего вы пытаетесь достичь. Для этого ответа я предполагаю, что вы хотите сгенерировать символы Unicode внутри диапазона от B0 до BF.

Ваш код не работает из-за escape-последовательности \u (а не из-за спецификаторов формата %x или %d). Просто внимательно прочитайте сообщение об ошибке. Код предполагает, что спецификатор %x будет заменен на число первым, а escape-последовательность будет оценена вторым. Однако это происходит наоборот: сначала последовательность \u оценивается компилятором и выдается ошибка, поскольку она недопустима.

Лучшим (и более простым) подходом является следующий код:

for (unichar ch = 0xB0; ch <= 0xBF; ch++){
    lbl.text =[NSString stringWithFormat:@"%C", ch ];
}

Этот код напрямую помещает символ Unicode в строку.

1 голос
/ 27 июля 2011

Используйте этот метод вместо:

NSString stringWithUTF8String:

Из документации здесь в разделе Строки и символы не ASCII:

Форматирование строк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...