我正在构建一个使用UTF-16编码的网站。这意味着每个文件(html、jsp)都是用UTF-18编码的,并且我在每个HTML页面的头部设置:
<meta http-equiv="content-type" content="text/html; charset=UTF-16">我的索引页面被Chrom和IE正确显示。但是,firefox不会呈现索引。它显示两个奇怪的字符和完整的索引页面代码:
��<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-16"> ...你知道原因吗?它应该是一个编码的问题,但我不知道它在哪里...
谢谢
发布于 2013-08-14 20:14:27
(披露:我是负责Firefox中相关代码的开发人员。)
我正在建立一个使用
-16编码的网站。
请不要这样做。简短的规则是:
对于interchange.
如果您在页面上包含用户提供的内容,那么使用UTF-16意味着您的站点很容易受到社会工程XSS的攻击,至少在较旧的浏览器中是如此。在火狐的老版本( 20或更老的版本)或基于Presto的Opera版中尝试this demo。
要避免该漏洞,请使用UTF-8。
这意味着每个文件(
,jsp)都是用UTF-18编码的。
啊哦。:-)
我和
在每个超文本标记语言页面的头部设置了:
<meta http-equiv="content-type" content="text/html; charset=UTF-16">
只有当所使用的编码将元标记的字节映射到与ASCII相同的字节时,元标记才能用作内部编码声明。UTF-16并非如此。
你知道原因吗?
在十六进制编辑器中没有完整的响应头和原始响应体。如上所述,一般的解决方案是始终使用UTF-8,从不在HTTP上使用UTF-16。
如果您的内容使用的是UTF-16比UTF-8更紧凑的语言,则需要注意两点:
发布于 2011-11-17 23:09:24
检查服务器是否发送了编码正确的Content-Type报头。
https://stackoverflow.com/questions/8169278
复制相似问题