iphone:NSMutableURLRequest返回MS Word样式撇号的奇怪字符

Nic*_*ard 4 xml iphone objective-c nsmutableurlrequest

我们使用XML/NSMutableURLRequest从我们的网站上提取内容,有时它会通过"卷曲"样式的撇号和引号,而不是'.NSMutableURLRequest似乎讨厌这些并将它们变成奇怪的\ U00e2\U0080\U0099字符串.

有什么我可以做的事情来防止这种情况吗?我正在使用GET方法,所以我应该以某种方式告诉它使用UTF-8?或者,我错过了什么?

UIApplication* app = [UIApplication sharedApplication];
    app.networkActivityIndicatorVisible = YES;

    NSString *urlStr = [NSString stringWithFormat:@"%@",url];
    NSURL *serviceUrl = [NSURL URLWithString:urlStr];
    NSMutableURLRequest *serviceRequest = [NSMutableURLRequest requestWithURL:serviceUrl];
    [serviceRequest setHTTPMethod:@"GET"];

    NSURLResponse *serviceResponse;
    NSError *serviceError;

    app.networkActivityIndicatorVisible = NO;

    return [NSURLConnection sendSynchronousRequest:serviceRequest returningResponse:&serviceResponse error:&serviceError];
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 5

NSURLConnection返回一个NSData回复.您可以将该NSData响应转换为字符串.然后取出这个字符串,将其转回一个NSData对象,沿途正确地对它进行UTF-8编码,然后将其输入NSXMLParser.

示例:(假设responseNSData您的请求的响应)

// long variable names for descriptive purposes
NSString* xmlDataAsAString = [[[NSString alloc] initWithData:response] autorelease];
NSData* toFeedToXMLParser = [xmDataAsAString dataUsingEncoding:NSUTF8StringEncoding];
NSXMLParser* parser = [[[NSXMLParser alloc] initWithData:toFeedToXMLParser] autorelease];
// now utilize parser...
Run Code Online (Sandbox Code Playgroud)