先描述一下现象:本机的MyEclipse环境下,将工程部署到MyEclipse Tomcat6,从控制台,到jsp页面显示,中文显示都正常,
但是将项目部署到Linux系统下的Tomcat6以后,控制台上,汉字显示是???,jsp页面上汉字显示是 小方块,两种环境连接的数据库是同一个数据库,所以应该不是数据库的原因导致的 本机MyEclipse的设置:
文件编码保存格式:UTF-8
Content Type 默认编码格式 UTF-8
MyEclipse 控制台编码格式 :GB18030 项目中的设置:
jsp的设置:
<%@ page contentType="text/html;charset=UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
java的设置:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
web.xml的设置:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
服务器为linux,tomcat6
conf/server.xml的设置
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK" /> ---这里无论是默认不写,GBK,UTF8,都不行
但是将项目部署到Linux系统下的Tomcat6以后,控制台上,汉字显示是???,jsp页面上汉字显示是 小方块,两种环境连接的数据库是同一个数据库,所以应该不是数据库的原因导致的 本机MyEclipse的设置:
文件编码保存格式:UTF-8
Content Type 默认编码格式 UTF-8
MyEclipse 控制台编码格式 :GB18030 项目中的设置:
jsp的设置:
<%@ page contentType="text/html;charset=UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
java的设置:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
web.xml的设置:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
服务器为linux,tomcat6
conf/server.xml的设置
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK" /> ---这里无论是默认不写,GBK,UTF8,都不行
然后DEBUG看 数据从后台出来的时候是否乱码
页面乱码是否由于AJAX
看样子是ASCII的超集字符被转成ASCII,超出的部分字符丢失了。
所以检查一下控制台本身使用什么编码。jsp页面上汉字显示是 小方块
看样子像解码正确,但是没有匹配的字体。
你这是在Linux上的浏览器访问还是Win下的?
如果是直接写在jsp页面上的汉字 应该是和 linux字符集有关系吧
<%@ page language="java" pageEncoding="UTF-8" isErrorPage="false" %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />你设Tomcat的server.xml中的URIEncoding干什么
在URIEncoding在设置相应的编码格式
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja"
SYSFONT="lat0-sun16"
SYSFONTACM="utf8"
<%@ page language="java" pageEncoding="UTF-8" isErrorPage="false" %>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
还是不行
我是在windows上的浏览器打开的另外,如何检查linux下tomcat控制台的编码设置呢?
System.out.println("测试中文");
打印出来都是问号
不是响应后的结果是乱码,是转移工程的时候发现编码问题这个一来是工作空间的字符集编码、Content Type 的字符集编码、文件编码保存格式的字符集编码都要 统一