【发布时间】:2014-03-08 12:06:01
【问题描述】:
我在 iOS 项目中使用 AFNetworking,到目前为止一切正常。现在我有一个 PHP 脚本,它应该获取一些信息并返回一些 json。脚本提供的信息和它应该返回的 json 都包含拉丁字符,主要是 ã 和 õ。
问题是,当我在我的 iOS 应用程序中接收回 json 时,字符被编码为我认为的 NSNonLossyASCIIStringEncoding。我认为编码不是 UTF8,因为回到应用程序:
[jsonManager GET:myURL parameters:sendingData success:^(AFHTTPRequestOperation *op,id responseObject){
NSLog(@"%d",op.responseStringEncoding);
NSLog(@"%d",op.responseSerializer.stringEncoding);
NSLog(@"%@",op.responseString);
NSLog(@"%@",[[NSString alloc]initWithData:op.responseData encoding:NSNonLossyASCIIStringEncoding]);
} failure:^(AFHTTPRequestOperation *op,NSError *error){
NSLog(@"%@",op.responseString);
}];
最后一个 NSLog(在成功的情况下)是唯一一个按预期输出 responseString 的日志。第三个日志输出 \u00e3 代替每个 ã。 第一个日志确认使用的编码是 NSUTF8StringEncoding。 第二个日志指出 responseSerializer.stringEnconding 是 NSNonLossyASCIIStringEncoding 因为我设置它是这样的,在发出请求之前,它没有任何区别,也不知道为什么......
真正奇怪的是,如果我使用浏览器调用脚本,我可以看到输出被编码为 UTF8。
这里有什么问题?
谢谢。
【问题讨论】:
标签: php afnetworking afnetworking-2