Как получить значение строки запроса без декодирования по умолчанию? - PullRequest
0 голосов
/ 16 февраля 2012

Мое веб-приложение ASP.net получает запрос от другого приложения с строкой запроса с именем title.

Например: www.abcdefg.com?title=&Aper%e7u+du+r%e9gime

Примечание. Строка запроса - это французское слово, содержащее символов ударения .Текст «Aperçu du régime» закодирован с использованием кодировки «ISO-8859-15» для создания текста строки запроса.

Проблема Когда я получаю доступ к строке запроса, используя

Request.QueryString["title"]

Я получу расшифрованный текст, в котором не будет символов акцента.

Например: Aper�u du r9gime

Итак, мой вопрос, есть лилюбой метод (например, метаданные) в ASP.Net, чтобы указать серверу не декодировать или не декодировать с помощью определенного декодера. Например: «ISO-8859-15»

Как только я смог получить точно такой же текст строки запроса, я могу использовать HttpUtility.UrlDecode для генерации фактического французского текста.

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

Вы можете использовать элемент <globalization> в вашем web.config для указания кодировки запроса:

<globalization requestEncoding="iso-8859-15" />
0 голосов
/ 16 февраля 2012

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

using System.Web;
using System.Text;

HttpUtility.ParseQueryString(query, Encoding.GetEncoding("iso-8859-15"))[yourParamName];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...