我正在建立一个编码为UTF-16的网站.这意味着每个文件(html,jsp)都以UTF-18编码,我设置在每个HTML页面的头部:
我的索引页面由Chrom和IE正确显示.但是,firefox不会呈现索引.它显示2个奇怪的字符和完整的索引页面代码:
?? ...
你知道原因吗?它应该是编码问题,但我不知道它位于何处......
谢谢
(披露:我是负责Firefox中相关代码的开发人员.)
我正在建立一个编码为UTF-16的网站.
请不要.简短的规则是:
切勿使用UTF-16进行交换.
始终使用UTF-8进行交换.
如果您违反规则1和2并仍然使用UTF-16,至少使用BOM(右侧).
但严重的是,不要违反规则1和2.
如果您在网页上包含用户提供的内容,则使用UTF-16意味着您的网站至少在旧浏览器中容易受到社交工程XSS的攻击.在旧版本的Firefox(20或更早版本)或基于Presto的Opera版本中试用此演示.
要避免此漏洞,请使用UTF-8.
这意味着每个文件(html,jsp)都以UTF-18编码
哦,哦.:-)
我在每个HTML页面的头部设置:
仅当使用的编码将元标记的字节映射到ASCII所用的相同字节时,元标记才用作内部编码声明.这不是UTF-16的情况.
你知道原因吗?
在十六进制编辑器中没有完整的响应标头和原始响应主体.如上所述,一般解决方案是始终使用UTF-8并且永远不要在HTTP上使用UTF-16.
如果您的内容使用UTF-16比UTF-8更紧凑的语言,则有两件事:
页面上的所有HTML,JS和CSS在UTF-8中都更加紧凑.
gzip让它与众不同.