今日在一台新的win2008 r2的新服务器上调试tomcat+jdk+mysql,使用utf-8编码,出现了非常郁闷的事,无论如何写入数据库中的字段数据老是出现乱码。
已经调整内容:
1、在接收post消息的文件内已经修改了:
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
2、<head>段中已经修改为:
<meta http-equiv="Content-Type" contect="text/html" charset=utf-8" >
3、在每个使用request.getParameter()的文件前加上了一下代码:
request.setCharacterEncoding("utf-8");
4、每个代码文件都改为utf-8编码。
5、mysql表中对应表已改为utf8编码,utf8_general_ci编码。
6、tomcat下的server.xml已更改为:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8" useBodyEncodingForURI="true"/>
结果写入的字段仍然为乱码,读出的代码也为乱码,非常的郁闷,最后只差进行代码强制转换了。
但是考虑到只是作为这个项目的专一服务器,因此没有。最后无意中发现,需要更改mysql安装文件下的my.ini中的
# CLIENT SECTION中的
default-character-set=latin1
为
default-character-set=utf8
并且
# SERVER SECTION中的
character-set-server=latin1
为
character-set-server=utf8
即可解决问题。