Вопрос о характере недопустимой строки NSS в URL на iPhone - PullRequest
5 голосов
/ 30 марта 2009

В некоторых моих http-запросах есть «пробел» в URL, но он не распознается iPhone. Я должен изменить «пробел» на «% 20» всякий раз, когда в URL есть «пробел». Теперь я должен отправить сообщение, набранное пользователем, на сервер, и в нем может быть столько «пробелов», сколько нужно пользователю. Похоже, я должен заменить их все. (StringByReplacingOccurferencesOfString)

Преобразование «пробел» в «% 20» - это то, что я иногда нахожу. У меня вопрос, какой из других символов в NSString не может быть прямо использован URL на iPhone?

Ответы [ 2 ]

20 голосов
/ 30 марта 2009

Я думаю, что это лучший подход:

NSString* escapedUrl = [originalUrl   
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

Если вы хотите понять, как работает кодирование URL, взгляните на этот URL .

1 голос
/ 30 марта 2009

См. RFC 2396 для получения полной информации. Следующие символы должны быть экранированы:

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

Следующие символы неразумно использовать без экранирования, поскольку известно, что некоторые шлюзы и другие транспортные агенты иногда изменяют такие символы или используются в качестве разделителей:

{ } | \ ^ [ ] `

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...