2011-01-05 1 views
2

Использование HttpUtility.UrlEncode и проходя через URL получающее страницы видит переменные как:UrlEncoding - какую кодировку я должен использовать?

новенький -> бренд + новый
Airconaire + Ltd -> Airconaire + Ltd

Вы можете увидеть, как первый и второй и имеют + в них, где они не были в начале? Я предполагаю, что это как-то связано с кодировкой (в частности, RFC3986 или RFC2396), но как я могу это решить?

Я думаю, что в идеале пространства должны быть преобразованы в% 20, но это лучший способ продвижения вперед?

+0

Если вы говорите, что UrlPathEncode() не работает для вас, вы можете разместить свой код? –

ответ

2

Попробуйте использовать HttpUtility.UrlPathEncode вместо URLEncode.

+0

Спасибо, но по какой причине UrlPathEncode работает над UrlEncode? –

+0

UrlPathEncode использует метод агностического кодирования платформы, тогда как UrlEncode использует подход Microsoft (я считаю). – Lazarus

+0

Итак, я должен пройти через приложение, заменяющее каждый экземпляр UrlEncode на UrlPathEncode? –

1

Метод UrlEncode() может использоваться для кодирования всего URL-адреса, включая значения строки запроса. Если символы, такие как пробелы и пунктуация, передаются в потоке HTTP, они могут быть неверно истолкованы на принимающей стороне. URL-кодирование преобразует символы, которые не разрешены в URL-адресе, в эквиваленты символов-сущностей; Преобразование URL-адресов отменяет кодировку. Например, когда символы < и> встроены в блок текста, который будет передаваться по URL-адресу, они кодируются как% 3c и% 3e.

Вы можете кодировать URL-адрес, используя метод UrlEncode() или метод UrlPathEncode(). Однако методы возвращают разные результаты. Метод UrlEncode() преобразует каждый пробел в символ плюса (+). Метод UrlPathEncode() преобразует каждый пробел в строку «% 20», которая представляет собой пробел в шестнадцатеричной системе. Используйте метод UrlPathEncode(), когда вы кодируете часть пути URL-адреса, чтобы гарантировать согласованный декодированный URL-адрес, независимо от того, какая платформа или браузер выполняет декодирование.

http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx

 Смежные вопросы

  • Нет связанных вопросов^_^