"nom de caractère universel incomplet" avec stringWithUTF8String

quand j'essaie de convertir forme de chaîne utf-8 pour NSString comme suit:

NSString *s = [NSString stringWithUTF8String:"U0627U0644U0641U0631U0646"];
NSLog(@"%@", s);

j'obtiens l'erreur de compilation:

incomplete universal character name

remarque que quelque fois, il fonctionne très bien:

NSString *UAE = [NSString stringWithUTF8String:"U0627U0644U0641U0631U0646"];
    NSLog(@"%@", UAE);

et la sortie:

الامارات

alors pourquoi cela se produit-il? s'il vous plaît aider.

21
demandé sur Nasser 2010-03-26 13:13:43

2 réponses

\U et \u ne sont pas la même chose. Le \ U escape attend 8 (hex) chiffres au lieu de 4.

Cela devrait fonctionner:

NSString *s = [NSString stringWithUTF8String:"\u0627\u0644\u0641\u0631\u0646"];
37
répondu David Gelhar 2010-03-26 17:42:15

le nom de caractère universel incomplet signifie qu'il vous manque une partie d'un des caractères utf8 que vous essayez d'écrire.

UTF8 s'étend des symboles de 1 octet aux symboles de 4 octets, probablement l'un des vôtres est plus long que vous avez écrit et il vous manque 1 octet ou un autre..

0
répondu Jack 2010-03-26 10:17:14