关于mysql中文乱码问题的解决

本文分享了在MySQL项目开发中遇到的中文乱码问题及其解决办法,包括MySQL编码设置、客户端程序及链接语句配置、以及服务器端的字符集问题。通过调整`character_set_server`为utf8,可以有效解决乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/*

前面写一个项目的时候MySQL出现了各种问题,有一些以前都没注意也没遇到过,现在终于解决了,在这里和大家分享一下。这里都是用的utf8的编码格式。

*/

mysql中乱码多半是这几种情况:

1:MySQL中设置的编码有问题,可以设置为utf8,一般都不会错,这里。

2:客服端程序(如Java)和链接语句设定有问题。

DriverManager.getConnection("jdbc:mysql://localhost:3306/lost_found<strong>?useUnicode=true&characterEncoding=utf-8</strong>","root",null);
如果是在hibernate中hibernate.cfg.xml配置就应该为
<property name="connection.url">
   jdbc:mysql://localhost:3306/another_lost_found?useUnicode=true&amp;characterEncoding=UTF-8
</property>

3:server设定有问题,一般都是因为设定为了latin1.

 这里就是我犯错的地方了,

 mysql中命令行模式输入show variables like "%char%";可看到各个配置,如:

mysql> show variables like "%char%";
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | utf8                                          |
| character_set_connection | utf8                                          |
| character_set_database   | utf8                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | utf8                                          |
| character_set_server     | latin1                                        |
| character_set_system     | utf8                                          |
| character_sets_dir       | c:\wamp\bin\mysql\mysql5.5.16\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set

 可以看到这里的character_set_server 的值为latin1,我们将它改为utf8即可。这里只讲我用的一种方法:

在命令行运行set character_set_server=utf8;即可。可看到:

mysql> show variables like "%char%";
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | utf8                                          |
| character_set_connection | utf8                                          |
| character_set_database   | utf8                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | utf8                                          |
| character_set_server     | utf8                                          |
| character_set_system     | utf8                                          |
| character_sets_dir       | c:\wamp\bin\mysql\mysql5.5.16\share\charsets\ |
+--------------------------+-----------------------------------------------+
8 rows in set

然后就会发现中文乱码已经解决了。

有时并不需要修改这些也不会出现乱码,这里只是给出的几个建议。

 当然也可以一劳永逸的修改my.ini (好像还有一个类似的my.cnf文件),网上许多说my.ini在C:\ProgramData\MySQL\MySQL Server 5.6\my.ini中,而我的则在C:\wamp\bin\mysql\mysql5.5.16\my.ini中。一些的版本中是找不到my.ini文件的,有时需要自己修改或者添加。

 当然,如果你有,也可以按照相应的文档进行修改。因为没有试过。所以就不班门弄斧了。不过记得修改这些配置文件的时候一定要先备份。有备无患嘛。

 

my.ini配置文件中的详细解释可以在这里找到:http://blog.youkuaiyun.com/wclxyn/article/details/6840208

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值