【发布时间】:2013-01-14 21:32:28
【问题描述】:
我有如下网址
http://mysite.com/default.aspx?q=%E1
%E1 应该是 á。当我从我的 C# 页面调用 Request.QueryString 时,我收到了
http://mysite.com/default.aspx?q=%ufffd
它对任何重音字符都执行此操作。 %E1, %E3, %E9, %ED 等都以%ufffd 的形式传递。正常编码值(%2D、%2E、%27)都可以正确传递。
配置文件已将全球化部分中的responseEncoding/requestEncoding 设置为UTF-8。
我怎样才能读取正确的值?
请注意,我不是生成查询字符串的人,我无法控制它。
【问题讨论】:
-
也许您只是认为 URL 看起来像这样 %E1,因为它在浏览器的地址栏中显示,但实际上总是像 %ufffd?
-
@UweKeim,我可以直接输入 URL,结果相同。它确实存在于查询字符串中,只是似乎在某个地方被破坏了。
-
iis 请求跟踪是否揭示了一些有用的信息?例如。是否发生重写?或者如何在您的客户端上使用 Microsoft Network Monitor?
-
@UweKeim,跟踪显示
�作为参数的值。差不多就是这样。
标签: c# asp.net .net-3.5 query-string urlencode