我正在使用本地 validator.nu实例来验证站点,但是它一直告诉我编码不匹配:
内部编码声明“iso-8859-1”与文档的实际编码(“utf-8”)不一致。
我已尽一切努力尝试将编码强制为 iso-8859-1,因为我们正在使用需要此编码的旧版数据库。
- 启动力量的过程
LANG='iso-8859-1'
- 强制
file.encoding
启动 tomcat-Dfile.encoding=iso-8859-1
,这可以通过检查Charset.defaultCharset()
哪些报告来确认ISO-8859-1
。 - Maven 项目资源通过以下方式复制
iso-8859-1
:<project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding>
- JSP
page
指令指定编码:<%@page contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
Content-Type
已在页眉中设置:<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
- 雄猫
URIEncoding
套装:<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="iso-8859-1" redirectPort="8443" />
我还能错过什么导致页面返回的原因utf-8
?
有趣的是,它正确地呈现了像 © 这样的字符,如果将 © 放置在文本输入中,它会使用 8859-1 代码页正确保存到数据库中。
更新:我刚刚决定使用 cURL 从服务器下载一个页面并上传到成功验证的 w3 检查器。唯一的问题是iso-8859-1
应该的命名,windows-1252
尽管我认为这两个字符集略有不同,但这个 w3 邮件列表条目却说不然,我需要研究一下。
这看起来越来越像validator.nu中的一个错误,我也会对此进行研究。