如何在没有默认解码的情况下获取查询字符串值?

时间:2012-02-16 13:56:05

标签: asp.net encoding

我的ASP.net Web应用程序正在从另一个应用程序获取一个名为title的查询字符串的请求。

  

例如:www.abcdefg.com?title=&Aper%e7u+du+r%e9gime

注意:查询字符串是具有重音字符的法语单词。 “Aperçudurégime”文本使用“ISO-8859-15”编码进行编码,以生成查询字符串文本。

问题 当我使用

访问查询字符串时
Request.QueryString["title"]

我将获得一个没有重音字符的解码文本。

  

例如:Aper udur gime

所以我的问题是,ASP.Net中是否有任何方法(例如:元数据)告诉服务器 使用特定解码器解码或解码例如:“ISO-8859-15”

一旦我能够获得完全相同的查询字符串文本,我就可以使用HttpUtility.UrlDecode生成实际的法语文本。

2 个答案:

答案 0 :(得分:2)

您可以使用web.config中的<globalization>元素来指定请求编码:

<globalization requestEncoding="iso-8859-15" />

答案 1 :(得分:0)

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

using System.Web;
using System.Text;

HttpUtility.ParseQueryString(query, Encoding.GetEncoding("iso-8859-15"))[yourParamName];