我正在接收JSON-Data并将其转换为字典。 打印字典会产生以下描述:
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的行为相同。
答案 0 :(得分:1)
两个输出只是字典中相同底层NSString
对象的不同表示,我相信它已经从JSON中的任何内容重新编码为UTF-16。
如Peter Hosey对this related question的回答所述,NSDictionary
的输出正在对字符串进行编码,以使其符合plist的预期文本表示。
在你的情况下,听起来你可能并不真的想回到那个表示(尽管如果你这样做,那么看看上面提到的问题的答案),而是直接在NSString,类似这样:
NSString* oldStr = @"\u00c3\u00bc";
NSString* newStr = @"\u00bc";
NSString* text = [dictionary objectForKey:@"text"];
NSString* replaced = [text stringByReplacingOccurrencesOfString:oldStr withString:newStr];
源代码中的\uXXXX
序列将转换为NSString
常量中的相关UTF-16字符,然后这些字符将在目标中进行匹配和替换。