asp.net – Internet Explorer 9中的URL查询字符串值的UTF-8字符编码问题
发布时间:2020-05-27 17:17:54 所属栏目:asp.Net 来源:互联网
导读:我在Internet Explorer中找到一个奇怪的问题,特别是IE9,当尝试显示URL查询字符串中提供的特殊字符(德文重音字符)时.这在Firefox和Chrome中正常工作. 例如,我正在使用的URL看起来像这样: http://mysite.com/TestPage.aspx?Title=Hochauflsendes 我也尝试过URL
|
我在Internet Explorer中找到一个奇怪的问题,特别是IE9,当尝试显示URL查询字符串中提供的特殊字符(德文重音字符)时.这在Firefox和Chrome中正常工作. 例如,我正在使用的URL看起来像这样: http://mysite.com/TestPage.aspx?Title=Hochauflsendes 我也尝试过URL编码版本的URL: http://mysite.com/TestPage.aspx?Title=Hochaufl%C3%B6sendes%C2%AE 在任一情况下,当我尝试使用Request.QueryString [“Title”]在我的页面上显示“Title”查询字符串值时,IE不会正确显示字符: Hochauflsendes 如果我直接在页面上直接编码文本,则会在所有浏览器上正确显示.只有当它从问题发生的查询字符串中拉出时. 该页面保存为UTF-8编码,并且我的页面中有必要的元标记: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 我也通过Fiddler查看了页面的标题和内容,所有的编码都是正确的. 可能导致IE不能正确显示特殊字符? 解决方法根据Aristos的建议,使用HttpContext.Current.Request.RawUrl为我的情况工作.要从RawUrl中检索实际的查询字符串值,可以使用这样一个简单的方法: private string GetQueryStringValueFromRawUrl(string queryStringKey)
{
var currentUri = new Uri(HttpContext.Current.Request.Url.Scheme + "://" +
HttpContext.Current.Request.Url.Authority +
HttpContext.Current.Request.RawUrl);
var queryStringCollection = HttpUtility.ParseQueryString((currentUri).Query);
return queryStringCollection.Get(queryStringKey);
}
使用此方法检索值已在IE8和IE9中工作.在IE10中修复了错误. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 流文本输出长时间运行的动作?
- asp.net – 每个会话的NH请求 – “会话已关闭
- asp.net-mvc – 使用jQuery ASP.NET MVC自动保存表单输入
- asp.net-mvc – asp.mvc中渲染的区别是什么
- asp.net-mvc-4 – ASP.Net Web Api在POST上不绑定模型
- asp.net-mvc-4 – 在VS2012中运行代码分析时出错
- asp.net-mvc – ASP.NET MVC – 接口类型上的自定义模型绑定
- 在ASP.NET中,在.aspx中内联代码的不同方法有哪些?
- asp.net-mvc – 如何在mvc网格格式中格式化日期
- asp.net – 在更改密码时从所有浏览器注销用户
