关于iPhone上URL的NSString字符无效的问题

时间:2009-03-30 03:21:44

标签: iphone url nsstring

我的某些http请求在网址中有“空格”,但iPhone无法识别。只要网址中有“空格”,我就必须将“空格”更改为“%20”。现在我必须将用户输入的消息发送到服务器,它可以拥有与用户一样多的“空格”。看起来我必须全部替换它们。(stringByReplacingOccurrencesOfString)

将'space'转换为'%20'是我偶尔会找到的。我的问题是,iPhone上的网址不能直接使用NSString中的哪些其他字符?

2 个答案:

答案 0 :(得分:20)

我认为这是一种更好的方法:

NSString* escapedUrl = [originalUrl   
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

如果您想了解网址编码的工作原理,请查看此URL

答案 1 :(得分:1)

有关详细信息,请参阅RFC 2396。必须转义以下字符:

Control characters (ASCII 00-1F and 7F)
Space
<
>
#
%
"

以下字符在没有转义的情况下使用是不明智的,因为已知某些网关和其他传输代理有时会修改这些字符,或者它们被用作分隔符:

{ } | \ ^ [ ] `