2013-10-14 4 views
0

Я пытаюсь преобразовать «á» в UTF8. Я могу найти, что «á» в UTF8 «Ã». В Xcode я написал это:NSString to UTF8 is wrong iOS

const char * litter = [@"á" UTF8String]; 
NSLog(@"%s",litter); 

и он всегда печатает «√ °» и что это неправильно! Действительно, если запись

const char * litter = [@"áéíóú" UTF8String]; 
NSLog(@"%s",litter); 

Он печатает: √ ° √ © √ ≠ √≥√∫

Что я делаю неправильно?

Thank you

ответ

0

Вы ничего не сделаете неправильно. Его просто то, что спецификатор% s просто распечатывает поток символов без уведомления unicode. Если вы хотите проверить, содержит ли мусор правильные символы, переведите его обратно в объект NSString, а затем NSLog.

const char * litter = [@"á" UTF8String]; 
NSLog(@"%@",[NSString stringWithUTF8String:litter]); 
+0

Но в этом случае он печатает: «А» не «a¡» – Georgevik

+0

Вы должны различать между тем, что вы получаете и то, что вы видите. Ваше утверждение о том, что «á» в UTF8 является «Ã», является абсолютной бессмыслицей. «á» в UTF8 - C3 A1. Кажется, вы ожидаете видеть строки с кодовыми точками U + 00C3 и U + 00A1. Это не произойдет. – gnasher729

 Смежные вопросы

  • Нет связанных вопросов^_^