解决MySQL中文乱码问题

最近使用MySQL Server 5.0的时候会遇到乱码问题;所以在网上找了一些资料,再加上自己的亲身经历写下这个文章。

MySQL会出现中文乱码的原因几点:
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题

建议使用utf8,兼容世界所有字符。

当遇到乱码问题:

首先,我们要先查看MySQL默认的编码格式代码如下:

mysql> show variables like '%character_set%';
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------------+

注:以前2个来确定,可以使用set names utf8,set names gbk设置默认的编码格式;

执行SET NAMES utf8的效果等同于同时设定如下:

SET character_set_client='utf8';

SET character_set_connection='utf8';

SET character_set_results='utf8';

逐个设置。

如果这样做完还是解决不了你的乱码问题,那终极绝招就来了:

MySQL修改配置文件:

找到MySQL Server 5.0安装目录下的my.ini文件

打开找到两处default-character-set都给它设置成utf8如下:

第一处:

[mysql]下的

default-character-set=utf8

第二处:

[mysqld]下的

default-character-set=utf8

保存,重启MySQL服务(必须重启不然数据库默认设置虽然改了,但是当前数据库编码还是上次启动服务的设置)

步骤如下:

1.右键计算机-->管理-->服务和应用程序-->服务-->找到MySQL-->右键重启。

最后总结下各种乱码问题最终就是因为数据存储格式与取出显示格式不匹配,若出现乱码问题,不但要检查MySQL中编码格式,还要从调用数据库的地方检查例如:

 jdbcodbc桥接 :

 Class.forName("com.mysql.jdbc.Driver");
   conn = DriverManager
     .getConnection(
    "jdbc:mysql://localhost:3306/onlineshopping?useUnicode=true&characterEncoding=UTF-8",
       "root", "123456");

等等...

以上纯属个人经验及参考资料得来,如有不足,望大家指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值