如何使用HTML链接在请求头中设置“Content-Type … charset”

前端之家收集整理的这篇文章主要介绍了如何使用HTML链接在请求头中设置“Content-Type … charset”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的HTML页面与UTF-8编码链接.
<html>
  <head>
    <Meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <a charset='UTF-8' href='http://server/search?q=%C3%BC'>search for "ü"</a>
  </body>
</html>

但是,我没有让浏览器包含Content-Type:application / x-www-form-urlencoded; charset = utf-8进入请求头.因此,我必须配置Web服务器以假定所有请求都是UTF-8编码的(URIEncoding =“UTF-8”在Tomcat server.xml中).但是当然管理员不会让我在生产环境(Websphere)中这样做.

我知道使用Ajax很容易实现,但是如何在使用标准HTML链接时控制请求头? charset属性似乎不适用于我(在IE8和FF 3.5中测试)

所需解决方案的第二部分将是使用Javascript更改IFrame的document.location时设置URL编码.

解决方法

这是不可能从HTML上.最接近的是< form>的accept-charset属性.只有MSIE浏览器坚持,但即使这样做也是错误的(例如,CP1252实际上已被用于发送ISO-8859-1).其他浏览器完全忽略它,它们正在使用响应的Content-Type标头中指定的字符集.设置字符编码权利基本上完全是服务器端的责任.客户端应该将其发送回与服务器发送响应相同的字符集.

至此,您应该真正从服务器端配置字符编码的东西.为了克服无法编辑URIEncoding属性,SO上的某个人写了一个(复杂的)过滤器:Detect the URI encoding automatically in Tomcat.你可能会发现它也很有用(注意:我还没有测试过).

更新:
应该注意的是,当内容通过HTTP传输时,您的问题中给出的元标记将被忽略.相反,HTTP响应Content-Type头将用于确定内容类型和字符编码.您可以在“Net”面板中确定HTTP标头,例如Firebug.

原文链接:https://www.f2er.com/html/231125.html

猜你在找的HTML相关文章