mysql中文乱码原因分析

第一层因素:
mysql的自身的设置
mysql有六处使用了字符集,分别为:client 、connection、database、results、server 、system。
mysql> show variables like ‘character%’;
+————————–+—————————-+
| 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 | /usr/share/mysql/charsets/ |
+————————–+—————————-+

mysql -uroot -p –default_character_set=gbk; (影响数据的输入和输出)

mysql> show variables like ‘character%’;
+————————–+—————————-+
| 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 | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)

insert into worker(id,name,sex,birthday,salary,entry_date,resume) values(3,'赵六',0,'1985-09-21',7000,'2012-08-24','一个小小牛');

====>错误现象
mysql> insert into worker(id,name,sex,birthday,salary,entry_date,resume) values(3,’赵六’,0,’1985-09-21’,7000,’2012-08-24’,’一个小小牛’);
ERROR 1366 (HY000): Incorrect string value: ‘\x80\xE4\xB8\xAA\xE5\xB0…’ for column ‘resume’ at row 1
mysql>

====>结论: 让你的客户端 服务器 连接 ,都必须设置成一样 utf8 gbk

第二层因素
操作系统语言环境的设置
a)操作系统的总体的语言环境
[mysql01@localhost ~] cat/etc/sysconfig/i18nLANG=zhCN.UTF8[mysql01@localhost ]
b)当前用户的语言环境 linux的操作系统是基于多用户的操作系统
OLDPWD=/home/mysql01
[mysql01@localhost ~] env|grepLANGLANG=zhCN.UTF8[mysql01@localhost ]

                =====>当前用户的LANG设置能屏蔽操作系统语言环境设置                  

        实现:修改当前用户的语言环境 
                    [mysql01@localhost ~]$ env | grep LANG
                    LANG=C
                    [mysql01@localhost ~]$                

            insert into worker(id,name,sex,birthday,salary,entry_date,resume) values(3,'赵六六',0,'1985-09-21',7000,'2012-08-24','一个小牛');      

第三层因素
你的应用软件的本身 文件的 存储问题….

文件存储
    最常用有2种方式: utf8  code936  


    ====  gbk转宽字节的函数....wide winskd函数  gbk转成宽字节(Unicode 2)

//备份mysql数据库
$ mysqldump -uroot -p mydb2 > 2.sql

//恢复msql数据库
$ mysqldump -uroot -p mydb2 < 2.sql

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值