最近再写一个web项目,把项目部署到tomcat上之后,打开页面全是汉字乱码!!!再三查看,程序没问题,所以就想到了mysql数据库的编码问题!
(我jsp页面用的编码统一是utf-8)
servlet连接数据库的语句后必须加上编码,如:
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/oj?useUnicode=true&characterEncoding=utf-8", "root", "root");
运行以下几条命令即可:
mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> SET character_set_database = utf8;
mysql> SET character_set_server = utf8;
然后用下面的语句进行查询:
mysql> show variables like '%char%';# show variables like '%collation_%';
其实吧,上面的语句比较多,其实用一句就可以代替:set names utf8;
这样,每次连接数据库时,要插入语句时,首先运行这句话,插入的才不会出现汉字乱码,否则还会出现乱码,不过用页面对数据库进行修改时,不会出现乱码,不需运行!!!