嗨,我正在尝试使我正在使用 UTF-8 兼容的应用程序之一。我的环境如下:linux os,apahce web server作为http监听器,tomcat作为servlet引擎
使用 mod_jk 配置的 apache 和 tomcat 使用 ajp 连接器。
我已经从几个站点阅读了 UTF-8 的基本指南,并根据我尝试了以下建议的建议
在 server.xml 中设置 URIEncoding="UTF-8"
和 用于连接器useBodyEncodingForURI =true
使用在 bashrc/.profile 中设置语言 LANG =en_US.UTF8
将 apache 服务器配置为默认使用 utf-8 编码,即指定 utf-8 作为默认字符集
AddDefaultCharset utf-8
启动 tomcat 时将 utf-8 设置为 java args。使用
JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
我还验证了我的网页是否有正确的元标记配置为
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
尽管如此,我仍然难以阅读 UTF-8 字符。知道我哪里出错了吗?
一个有趣的观察是,我只在使用 Internet exporer 和 chorme 时遇到困难。当我使用火狐将 utf-8 字符发送到我的服务器时,我能够正确读取它们。但是,IE 和 chorme 的字符越来越混乱。知道问题可能出在哪里吗?
我在 chrome 和 Fire fox 之间唯一能注意到的变化是 contentType 标头中的变化。
来自firefox的请求的请求头如下
Content-Type: application/x-www-form-urlencoded; charset=utf-8
至于chrome(以及可能的IE,我没有检查)是
Content-Type: application/x-www-form-urlencoded
知道这里出了什么问题吗?