Objective c 目标C:未完全从UTF-8解码NSString

Objective c 目标C:未完全从UTF-8解码NSString,objective-c,ios,nsstring,Objective C,Ios,Nsstring,我正在查询一个返回JSON字符串为NSData的web服务器。字符串为UTF-8格式,因此它被转换为如下所示的NSString NSString *receivedString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; 然而,一些UTF-8转义仍然保留在输出的JSON字符串中,这会导致我的应用程序行为不稳定。类似于\u2019的内容仍保留在字符串中。我尽了一切努力来移除它们,并用

我正在查询一个返回JSON字符串为
NSData
的web服务器。字符串为UTF-8格式,因此它被转换为如下所示的
NSString

NSString *receivedString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; 
然而,一些UTF-8转义仍然保留在输出的JSON字符串中,这会导致我的应用程序行为不稳定。类似于
\u2019
的内容仍保留在字符串中。我尽了一切努力来移除它们,并用它们的真实角色替换它们

我能想到的唯一一件事是用他们的角色手动替换UTF-8转义的发生,但是如果有更快的方法,这是一个很大的工作

下面是一个错误解析字符串的示例:

{"title":"The Concept, Framed, The Enquiry, Delilah\u2019s Number 10  ","url":"http://livebrum.co.uk/2012/05/31/the-concept-framed-the-enquiry-delilah\u2019s-number-10","date_range":"31 May 2012","description":"","venue":{"title":"O2 Academy 3 ","url":"http://livebrum.co.uk/venues/o2-academy-3"}
如您所见,URL尚未完全转换


谢谢,

语法
\u2019
不是UTF-8编码的一部分,它是一种特定于JSON的语法
NSString
解析UTF-8,而不是JSON,因此不理解它

您应该使用
NSJSONSerialization
解析JSON,然后从JSON的输出中提取所需的字符串

例如:

NSError *error = nil;
id rootObject = [NSJSONSerialization
                      JSONObjectWithData:receivedData
                      options:0
                      error:&error];

if(error)
{
    // error path here
}

// really you'd validate this properly, but this is just
// an example so I'm going to assume:
//
//    (1) the root object is a dictionary;
//    (2) it has a string in it named 'url'
//
// (technically this code will work not matter what the type
// of the url object as written, but if you carry forward assuming
// a string then you could be in trouble)

NSDictionary *rootDictionary = rootObject;
NSString *url = [rootDictionary objectForKey:@"url"];

NSLog(@"URL was: %@", url);

你能给出一个没有被正确解析的字符串的例子吗?您可能需要发布一个十六进制的实际字节转储来清除。这绝对解决了这个问题,事实证明我遇到的问题是将该符号作为NSString传递给另一个方法。我可以作为一个单独的问题再次提出。