Unicode выходит в объективе-C - PullRequest
       2

Unicode выходит в объективе-C

5 голосов
/ 25 октября 2011

У меня есть строка "Artîsté". Я использую json_encode из PHP на нем и получаю "Art \ u00eest \ u00e9".

Как мне преобразовать это в строку NSString? Я перепробовал много вещей, и ни одна из них не сработала. Я всегда получаю Artîstà ©

For Example:
NSString stringWithUTF8String:"Art\u00c3\u00aest\u00c3\u00a9"];//Artîsté
@"Art\u00c3\u00aest\u00c3\u00a9"; //Artîsté

Ответы [ 2 ]

7 голосов
/ 25 октября 2011

Вы можете использовать CFStringCreateFromExternalRepresentation с кодировкой kCFStringEncodingNonLossyASCII для анализа escape-последовательностей \uXXXX. Проверьте мой ответ здесь:

Преобразование экранированных символов UTF8 обратно в исходную форму

4 голосов
/ 27 октября 2011

Проблема в том, что ваша строка ввода:

"Art\u00c3\u00aest\u00c3\u00a9"

фактически означает буквально "Artîstà ©".\ u00c3 это 'Ã', \ u00ae это '®', а \ u00a9 это '©'.

Все, что генерирует вашу входную строку, получает ввод UTF-8, но ожидает чего-то другого (например, cp1252, ISO-8859-1 или ISO-8859-15)

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