“неполное универсальное имя персонажа” с stringWithUTF8String

когда я пытаюсь преобразовать форму utf-8, представляют в виде строки к NSString как так:

NSString *s = [NSString stringWithUTF8String:"\U0627\U0644\U0641\U0631\U0646"];
NSLog(@"%@", s);

я получаю ошибку компиляции:

incomplete universal character name

обратите внимание, что это когда-то просто хорошо работает:

NSString *UAE = [NSString stringWithUTF8String:"\U0627\U0644\U0641\U0631\U0646"];
    NSLog(@"%@", UAE);

и вывод:

الامارات

итак, почему это происходит? помогите.

21
задан Nasser 26 March 2010 в 10:13
поделиться

2 ответа

\ U и \ u - это не одно и то же. В escape-последовательности \ U ожидается 8 (шестнадцатеричных) цифр вместо 4.

Это должно сработать:

NSString *s = [NSString stringWithUTF8String:"\u0627\u0644\u0641\u0631\u0646"];
37
ответ дан 29 November 2019 в 20:51
поделиться

Неполное имя универсального символа означает, что вам не хватает части одного из символов utf8, который вы пытаетесь написать.

UTF8 охватывает от 1 байтовых символов до 4 байтовых символов, возможно, один из ваших символов длиннее, чем вы написали, и вам не хватает 1 байта или чего-то подобного ..

0
ответ дан 29 November 2019 в 20:51
поделиться