日期:2014-05-16  浏览次数:20699 次

关于linux下处理java+tomcat+mysql乱码的解决
最近在Ubuntu9.04下用tomcat发布一个用java开发的WEB项目(tomcat6+mysql)。在windows下编码完全没问题,到了linux下后,到处一大堆得乱码(主要是针对中文)。上网查了下,虽然有很多关于这方面的资料,但是基本上很有用的都没有。最后还是自己慢慢的解决了,现在把经验分享给大家,希望能帮助大家。 首先,因为Ubuntu9.04系统下的默认编码是采用了utf-8的,所以先设置mysql的编码。vim /etc/mysql/my.cnf,把default-character-set=utf8加在[client]和[mysqld]下,保存退出。保证了mysql服务端的编码为utf8,建数据库:create database if not exists medou default character set utf8,注意:数据库的默认character也要设置成utf8,建表CREATE TABLE test ( test_id varchar(32) NOT NULL , test_name varchar(100) character set utf8 NOT NULL , PRIMARY KEY (test_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8,同样的也要设置为utf8。到此为止,linux下终端操作insert,update中文都不会有乱码了。 第二步,因我用的是tomcat配置mysql的数据源,url="jdbc:mysql://127.0.0.1:3306/medou?useUnicode=true&characterEncoding=utf-8&autoReconnect=true" 配置url如上,至此jdbc对中文的操作将不会产生乱码。 第三部,打开tomcat/bin/catalina.sh,加入CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=GBK"这句话,至此tomcat日志里面的输出不会产生乱码 第四部,对log4j的操作,打开log4j.properties,加入log4j.appender.stdout.encoding=GBK这句话,则log4j日志不会产生乱码。 所有的对乱码的处理就此完成