5

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

Convert 'space' to '%20' 是我偶尔发现的。我的问题是 NSString 中的哪些其他字符不能被 iPhone 上的 url 直接使用?

4

2 回答 2

20

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

NSString* escapedUrl = [originalUrl   
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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

于 2009-03-30T03:35:18.350 回答
1

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

控制字符(ASCII 00-1F 和 7F)
空间
<
>
#
%
"

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

{ } | \ ^ [ ] `

于 2009-03-30T03:41:28.677 回答