"неполное универсальное имя символа" с stringWithUTF8String - PullRequest
21 голосов
/ 26 марта 2010

, когда я пытаюсь преобразовать строку формы 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);

и вывод:

الامارات

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

Ответы [ 2 ]

37 голосов
/ 26 марта 2010

\ U и \ u не одно и то же. Экранирование \ U ожидает 8 (шестнадцатеричных) цифр вместо 4.

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

NSString *s = [NSString stringWithUTF8String:"\u0627\u0644\u0641\u0631\u0646"];
0 голосов
/ 26 марта 2010

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

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

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