Кавычки и пробелы в кодировке URL

У меня есть текст запроса, который кодируется с помощью JavaScript, но я столкнулся со случаем использования, когда мне, возможно, придется кодировать тот же текст на стороне сервера, и кодировка, которая происходит, отличается. Мне нужно, чтобы было так же. Вот пример.

Я ввожу «Я люблю еду» в поле поиска и нажимаю кнопку поиск . JavaScript кодирует это как % 22I% 20like% 20food% 22

Допустим, я получаю то же значение, что и строка в объекте запроса на стороне сервера. Это будет выглядеть так: "\" Мне нравится еда \ ""

Когда я использую HttpUtility.UrlEncode (value) , результат будет "% 22I + like + food % 22 ". Если я использую HttpUtility.UrlPathEncode (value) , результатом будет "\" I% 20like% 20food \ ""

Итак, UrlEncode кодирует мои цитаты, но используя символы + для пробелов. UrlPathEncode кодирует мои пробелы, но не кодирует мои экранированные кавычки.

Мне это действительно нужно, чтобы делать и то, и другое, иначе код поиска полностью меня не устраивает (и я не могу контролировать код поиска).

Советы?

28
задан rsenna 27 January 2011 в 18:58
поделиться