когда я пытаюсь преобразовать форму 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);
и вывод:
الامارات
итак, почему это происходит? помогите.
\ U и \ u - это не одно и то же. В escape-последовательности \ U ожидается 8 (шестнадцатеричных) цифр вместо 4.
Это должно сработать:
NSString *s = [NSString stringWithUTF8String:"\u0627\u0644\u0641\u0631\u0646"];
Неполное имя универсального символа означает, что вам не хватает части одного из символов utf8, который вы пытаетесь написать.
UTF8 охватывает от 1 байтовых символов до 4 байтовых символов, возможно, один из ваших символов длиннее, чем вы написали, и вам не хватает 1 байта или чего-то подобного ..