2

我正在使用 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 中返回时,任何人都可以帮助我摆脱这个问题。提前致谢。

4

1 回答 1

1

URL 编码的“%C2%A0”字符串是 UTF-8 编码的 Unicode“不间断空格”。

请参阅 wiki ( http://en.wikipedia.org/wiki/Non-breaking_space )。

恕我直言,对于在 URL 查询中的未编码参数字符串中出现 Unicode“不间断空格”没有任何意见。

为了检查iOS 6和iOS 7中原始未编码的参数字符串是否存在差异,您需要查看字节,例如,NSData从具有UTF-8编码的参数字符串创建一个对象并将该NSData对象记录到控制台。

打印NSString对象在文本编辑器或控制台中可能具有相同的外观。

于 2013-09-25T11:15:11.850 回答