NSDictionary objectForKey / valueForKey уже отформатирован? - PullRequest
1 голос
/ 03 декабря 2010

Я получаю JSON-данные и преобразую их в словарь. Печать словаря приводит к следующему описанию:

Objekt: {
author = blub;
authorUID = 28084;
date = "31.07.10";
numVotes = 0;
postUID = 30931;
text = "... <b>Atemtest</b> durchf\U00c3\U00bchren m\U00c3\U00bcssen?...";
timestamp = 1280585555;}

То, что я хочу, это заменить случаи, например, \U00c3\U00bc с \U00bc.

Вот где я застрял. [dictionary objectForKey:@"text"] возвращает уже отформатированную строку типа <b>Atemtest</b> durchführen zu müssen?

valueForKey ведет себя так же.

1 Ответ

1 голос
/ 03 декабря 2010

Оба вывода являются просто различными представлениями одного и того же базового NSString объекта в словаре, который, я считаю, уже перекодирован как UTF-16 из того, что было в JSON.ответ на этот связанный вопрос , вывод NSDictionary кодирует строку так, чтобы она соответствовала ожидаемому текстовому представлению plist.

В вашем случае это звучит так, как вына самом деле не хочу возвращаться к этому представлению (хотя, если вы все же посмотрите на принятый ответ на вышеупомянутый вопрос), но вместо этого сделайте подстановку непосредственно в строке NSSt, что-то вроде этого:

Последовательности \uXXXX в исходном коде будут преобразованы в соответствующие символы UTF-16 в константах NSString, которые затем будут сопоставлены и заменены в целевом объекте.

...