我在Firefox Web控制台的JS选项卡中收到以下警告( Ctrl + Shift + K )
表单以windows-1252编码提交,无法编码 所有Unicode字符,因此用户输入可能会损坏。为了避免这种情况 问题,应该更改页面,以便提交表单 UTF-8编码可以通过改变页面本身的编码来实现 到UTF-8或在表单元素上指定accept-charset = utf-8。 @
http://localhost:8080/myapp/login
html显式使用utf-8编码,如下所示:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />;
html(实际上是Freemarker模板)文件以前是在Windows机器上。所以我按照建议here使用recode实用程序将它们重新编码为utf-8。但我仍然看到同样的警告。
我在这里缺少什么?
Chrome的开发者工具实用程序中没有警告或错误( Ctrl + Shift + I )
答案 0 :(得分:11)
根据评论,很明显服务器在HTTP标头中将编码指定为ISO-8859-1。您不能在HTML中为文档本身覆盖它。但是,您可以使用form
标记中的accept-charset=utf-8
属性来指定表单数据提交的字符编码。
要更改HTTP标头,您需要在服务器级别执行某些操作。这可能意味着创建或编辑.htaccess文件或其他内容。
P.S。 Accept-Encoding
标头与此无关。它没有指定字符编码,而是指定数据的传输编码。