打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MySQL中文乱码问题探究

文章目录

1.修改MySQL默认编码

看下面的博客:
https://blog.csdn.net/weixin_45525272/article/details/107985386

2.mysql中文乱码问题三层因素:

因素1: MySQL自身的设计

【实验步骤1】:

mysql> show variables like 'character%';
 查看所有应用的字符集

【实验步骤2】:

$ mysql -uroot -p123456 --default_character_set=gbk
指定字符集登录数据库

mysql> show variables like 'character%';
影响了与客户端相关联的 3处 (最外层)

在这种状态下执行use mydb2;
mysql> select * from employee;
查看输出,会出现乱码。
原来的三条数据,是以utf8的形式存储到数据库中,当使用gbk连接以后,数据库仍按照utf8的形式将数据返回,出错。

【实验步骤3】:

在该环境下插入带有中文的一行数据。
mysql> insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(10,'张三’,1,'1988-09-21’,15000,'2012-06-24’,'一个老牛’);
ERROR 1366 (HY000): Incorrect string value: '\x80\xE4\xB8\xAA\xE8\x80…’ for column 'resume’ at row 1

因素2:操作系统的语言集

linux操作系统 是一个 多用户的操作
[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
操作系统的菜单按照zh_CN显示,  文件存储按照utf8
linux操作系统语言环境 和 用户的配置的语言环境LANG 相互影响
[mysql01@localhost ~]$ echo $LANG
zh_CN.UTF-8

【实验步骤4】:

修改用户下的.bash_profile 中的LANG,屏蔽操作系统的LANG设置。再查数据库

mysql> select * from employee;

结论: 用户的LANG设置,影响了应用程序的语言环境,导致myql的语言环境发生了改变:

mysql> show variables like 'character%';
在此环境下,检索中文会出现乱码。

【实验步骤5】:在上述环境之下,向数据库中插入中文。

insert into employee(id,name,sex,birthday,salary,entry_date,resume) values(5,'张三疯’,1,'1987-05-21’,15000,'2014-06-24’,'一个老牟’);
数据能插入到数据库中,没 有 报 任 何 错 误!但显示不正确。

因素3:文件存储格式

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
解决(Spark)openfire在使用MySQL数据库后的中文乱码问题
mysql数据库中文乱码问题-亲自检测
mysql5.5,5.6和5.7之中文乱码
mysql解决中文乱码_mysql数据库显示乱码_mysql乱码问题解决
mysql 写入中文乱码
一劳永逸的解决mysql存储和读取中文乱码的问题。 - fwkjdaghappy@126的...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服