iPhone在NSURL中发送UTF-8参数

时间:2010-11-14 12:13:05

标签: iphone utf-8 nsurl

我正试图用谷歌搜索一个从右到左的语言(希伯来语阿拉伯语等...),我试过这个

    NSURL *url = [NSURL URLWithString:@"http://www.google.com/search?q=امريكا"];
[[UIApplication sharedApplication] openURL:url];

但完全不使用它会忽略url并跳过方法就好像它是空的..而如果我把英文字符放在工作上就好了..那些utf-8字符还有另一种方法吗?

1 个答案:

答案 0 :(得分:2)

警告:我不做iPhone编程,也不知道你正在使用的操作/方法是如何工作的。

但是,似乎网址没有被转义。

URL RFC对URL中的字符编码明确含糊不清(“此规范不强制要求任何特定的字符编码”)。但是,URL仅限于ASCII字母,数字和一小组特殊字符。其他所有内容都必须使用percent-encoding进行编码。

虽然URL语法没有指定字符集编码,但是一个行为良好的服务器应该接受UTF-8字符,只要它们是百分比转义即可。所以希伯来字符Sheva,unicode 05B0应该存储在%D6%B0的URL中。

要进行诊断,您需要查看通过线路的实际字节数。不知道这对iPhone有多容易,但Fiddler之类的日志代理可能有所帮助(是的,我知道,它是一个Windows应用程序,但我确信它与Mac相当)。