我的某些http请求在网址中有“空格”,但iPhone无法识别。只要网址中有“空格”,我就必须将“空格”更改为“%20”。现在我必须将用户输入的消息发送到服务器,它可以拥有与用户一样多的“空格”。看起来我必须全部替换它们。(stringByReplacingOccurrencesOfString)
将'space'转换为'%20'是我偶尔会找到的。我的问题是,iPhone上的网址不能直接使用NSString中的哪些其他字符?
答案 0 :(得分:20)
我认为这是一种更好的方法:
NSString* escapedUrl = [originalUrl
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
如果您想了解网址编码的工作原理,请查看此URL。
答案 1 :(得分:1)
有关详细信息,请参阅RFC 2396。必须转义以下字符:
Control characters (ASCII 00-1F and 7F) Space < > # % "
以下字符在没有转义的情况下使用是不明智的,因为已知某些网关和其他传输代理有时会修改这些字符,或者它们被用作分隔符:
{ } | \ ^ [ ] `