Строки запроса со специальными символами - PullRequest
3 голосов
/ 06 марта 2012

Как передать строку запроса со специальными символами?

Например, мне нужно передать «&» внутри строки запроса, как показано ниже:

../solrresults.asp?mode=search&data=M & S

Ответы [ 3 ]

6 голосов
/ 06 марта 2012

Использование Server.UrlEncode:

URLEncode преобразует символы следующим образом: Пробелы () преобразуются в знаки плюс (+).Не алфавитно-цифровые символы переводятся в их шестнадцатеричное представление.

Используйте это так;

<a href="page2.asp?name=<%= Server.URLEncode(sName) %>">here</a>
0 голосов
/ 06 марта 2012

Как уже говорилось, метод UrlEncode будет правильным способом.

Некоторое время назад я написал небольшой класс QueryString, чтобы упростить работу с этими строками запроса .

Пример использования:

private void Page_Load(
    object sender, 
    System.EventArgs e )
{
    // Let the object fill itself 
    // with the parameters of the current page.
    QueryString qs = new QueryString();

    // Read a parameter from the QueryString object.
    string value1 = qs["name1"];

    // Now remove the parameter.
    qs.RemoveParameter( "name1" );

    // This has the same effect as RemoveParameter() method:
    qs["name1"] = null;

    // ... Further processing of the value1 variable ... 
}

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

0 голосов
/ 06 марта 2012

После ваших комментариев вот решение для различных языков сценариев:

Для каждого языка сценариев доступны разные версии.Вот ссылка из w3schools:

В JavaScript вы можете использовать функцию encodeURI ().PHP имеет функцию rawurlencode (), а ASP имеет функцию Server.URLEncode ().

Ссылка: http://www.w3schools.com/tags/ref_urlencode.asp

...