Linux下MySQL保存进去数据为乱码的解决办法


mysql默认的字符编码是latin1,而我用的是utf-8,存入数据库就变成了?????这样的乱码,解决方法:

1、windows下:修改my.ini文件,有两处default-character-set=latin1都改为default-character-set=utf8重启既可。
2、linux下:vi /etc/my.cnf(# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 既已经把my-medium.cnf拷贝到/etc/下了)在[mysqld]下加入default-character-set = utf8,[client]下加入default-character-set = utf8
:wq保存退出
也可直接在mysql>输入
mysql> SET character_set_client = x;
mysql> SET character_set_results = x;
mysql> SET character_set_connection = x;
x为要设置的字符集,如utf8
# show variables like '%char%';# show variables like '%collation_%';

查看字符集,会显示各项字符集。重新设置后的数据库不能使用,因为中文一样会是乱码,不知道为什么,重建一个数据库,重启服务器。

url中文字符乱码问题:

修改tomcat的server.xml文件
<Connector acceptCount="100"
           connectionTimeout="20000"
           disableUploadTimeout="true"
           port="8080"
           redirectPort="8443"
           maxSpareThreads="75"
           maxThreads="150"
           minSpareThreads="25"
          URIEncoding="UTF-8">
</Connector>
配上过滤器就OK。

相关内容