Специальные символы в строке запроса URL - PullRequest
4 голосов
/ 19 июля 2011

У меня есть ситуация, когда пользователь может вводить любые символы в строку запроса URL.

Пример:

http://localhost/default.aspx?ID=XXXX

http://localhost/default.aspx?ID=&XXXX

http://localhost/default.aspx?ID=#XXXX

Веб-страница должна принимать параметр ID, поскольку он не имеет значения, какие это символы.Однако определенные специальные символы, такие как амперсанд (&) и фунт (#), создают проблемы.Как я могу принять их как есть?

Ответы [ 4 ]

5 голосов
/ 19 июля 2011

Это:

encodeURIComponent(uri)

Где uri - компонент после ?ID=

3 голосов
/ 19 июля 2011

Если пользователь вводит строку запроса, он должен сначала правильно закодировать строку запроса.Если вы сами создаете строку запроса, например, из отправки формы, вам нужно будет использовать метод кодирования URL.

1 голос
/ 19 июля 2011

Кодируйте ваш URL HttpServerUtility.UrlEncode Method (String)

Редактировать: после вашего комментария вы хотите получить строковое значение запроса ID

 String id = Request.QueryString["ID"];
0 голосов
/ 19 июля 2011

Используйте

userinput = escape(userinput)

, затем в PHP:

$userinput = urldecode($_GET['id'])

или в JS:

userinput = unescape(userinput)
...