本来可以早早睡觉了,突然发现PHP请求回来的JSON格式居然无法解析出正确的数据。
解析代码
request.responseEncoding = NSUTF8StringEncoding;
NSString *responseString = [request responseString];
用浏览器打开发现是正确的JSON格式,那就怀疑是我们客户端代码的问题。
使用一下代码解析
request.responseEncoding = NSUTF8StringEncoding;
NSString *responseString = [request responseString];
if (responseString == nil)
{
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_2312_80);
request.responseEncoding = enc;
responseString = [request responseString];
}
if (responseString == nil)
{
request.responseEncoding = NSISOLatin1StringEncoding;
responseString = [request responseString];
}
可以解析出来,但是发现解析的中文是乱码。
那就开始怀疑是apache的问题,但是我使用的是XAMPP最新的版本,查了很久发现现在的版本是不需要设置字符集的。
在想了几种可能性后,突然想到会不会是文本的保存格式的问题,我将XXX.PHP用UTF-8保存后,正确可以解析出数据。