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