Question about character of NSString invalid in URL on iPhone

情到浓时终转凉″ 提交于 2019-12-01 04:42:33

问题


Some of my http request has 'space' in URL, but it is not recognized by iPhone. I have to change 'space' to '%20' whenever there is a 'space' in the url. Now I have to send a message typed by the user to the server and it can have as many 'spaces' as the user like. It looks like I have to replace them all.(stringByReplacingOccurrencesOfString)

Convert 'space' to '%20' is the one I occasionally find. My question is which of the other characters in NSString cannot be straightly used by url on iPhone?


回答1:


I think this is a better approach:

NSString* escapedUrl = [originalUrl   
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

If you want to understand how URL encoding works, take a look at this URL.




回答2:


See RFC 2396 for the full gory details. The following characters must be escaped:

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

The following characters are unwise to use without escaping because some gateways and other transport agents are known to sometimes modify such characters, or they are used as delimiters:

{ } | \ ^ [ ] `



来源:https://stackoverflow.com/questions/695911/question-about-character-of-nsstring-invalid-in-url-on-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!