IOS7中的NSUTF8StringEncoding问题

时间:2013-09-25 10:14:59

标签: iphone ios objective-c ipad

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

1 个答案:

答案 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对象可能具有相同的外观。