asp.net – Internet Explorer 9中的URL查询字符串值的UTF-8字符
发布时间:2020-12-15 19:32:07 所属栏目:asp.Net 来源:网络整理
导读:我在Internet Explorer中找到一个奇怪的问题,特别是IE9,当尝试显示URL查询字符串中提供的特殊字符(德文重音字符)时.这在Firefox和Chrome中正常工作. 例如,我正在使用的URL看起来像这样: http://mysite.com/TestPage.aspx?Title=Hochaufl?sendes? 我也尝试过
我在Internet Explorer中找到一个奇怪的问题,特别是IE9,当尝试显示URL查询字符串中提供的特殊字符(德文重音字符)时.这在Firefox和Chrome中正常工作.
例如,我正在使用的URL看起来像这样: http://mysite.com/TestPage.aspx?Title=Hochaufl?sendes? 我也尝试过URL编码版本的URL: http://mysite.com/TestPage.aspx?Title=Hochaufl%C3%B6sendes%C2%AE 在任一情况下,当我尝试使用Request.QueryString [“Title”]在我的页面上显示“Title”查询字符串值时,IE不会正确显示字符: Hochaufl?sendes? 如果我直接在页面上直接编码文本,则会在所有浏览器上正确显示.只有当它从问题发生的查询字符串中拉出时. 该页面保存为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 – 从Scripts.Render中排除的Asp.Net MVC4捆绑
- 获取Asp.net/iis设置Cache-control:静态文件的max-age
- asp.net-mvc – 是否可以将XDocument作为参数传递给ASP.NET
- asp.net-mvc-3 – 在MVC 3视图模型上使用Editable属性
- asp.net – 如何从Control继承而不是UserControl?
- asp.net – 部署后强制刷新网站
- asp.net – 如何阻止不必要的回发
- asp.net mvc 设置一个action的访问人数,达到上线排队
- I am a passionate coder ^_^
- 从ASP.NET 3.5应用程序在IFRAME中运行GWT应用程序(包括Appl
推荐文章
站长推荐
热点阅读