我正在使用stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding。我的应用程序在IOS 6和IOS 7中运行,没有问题,但问题出在IOS 7上。
NSString *strURL = [NSString stringWithFormat:@"%@app1.php?loc=%@", URL, [param stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
1. in IOS6 it's encoded like :
http://mydomain/app1.php?loc=Select%20Office%20location
2. in IOS7 it's encoded like :
http://mydomain/app1.php?loc=Select%C2%A0Office%C2%A0location
现在问题是php服务器接受了否。 1编码我的意思是由IOS6编码。因此,当我的应用程序在IOS7中运行php服务器返回零结果,而它在IOS6中返回可以任何人帮助我摆脱这个问题。提前谢谢。
答案 0 :(得分:1)
URL编码的“%C2%A0”字符串是UTF-8编码的Unicode“非中断空格”。
请参阅wiki(http://en.wikipedia.org/wiki/Non-breaking_space)。
恕我直言,在URL查询中未编码的参数字符串中出现Unicode“不间断空格”没有任何内容。
为了检查iOS 6中iOS 7中原始未编码参数字符串是否存在差异,您需要查看字节,例如,使用UTF从param字符串创建NSData
对象-8编码并将此NSData
对象记录到控制台。
在文本编辑器或控制台中打印NSString
对象可能具有相同的外观。