2011-02-06 2 views
2

Так что, если у меня есть NSData из запроса HTTP, то я что-то вроде этого:Unicode данные NSData в NSString

NSString *test = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

Это приведет к нулевой, если данные содержат странные данные Юникода (title is from reddit):

{"title":"click..██me..and..then██________ ██check██_.your...██.__...██____ ██....██████████████....██____ ██████....██████....██████____ ██████████████████████____ ....██████████████████______ ........██..._recently....██________ ....██....viewed....links....██_____"}, 

Как преобразовать данные в строку? В идеале было бы лучше, если бы строка не была нулевой, поэтому я мог анализировать ее как JSON, но даже преобразование с потерями в этом случае прекрасное.

Я не знаком с юникода (наивный американец Я), так что любое просветление о том, что будет хороший бонус :)

ответ

1

Если скопировать и вставить этот текст в текстовый файл в кодировке UTF-8, прочитайте он с dataWithContentsOfURL: и преобразует его в строку с initWithData:encoding:, он отлично работает. Наиболее вероятным объяснением является то, что вы не получаете достоверных данных UTF-8.

+0

Спасибо, я свяжусь с разработчиком API. – Jeff

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