本文整理自网络,侵删。
目录
- 1、中文乱码
- 1.1、中文乱码
- 1.2、查看表字符编码
- 1.3、数据库与操作系统编码
- 2、mysql设置变量的范围
- 2.1、session范围
- 2.2、global范围
- 2.3、设置数据全局范围
- 3、总结
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。
1、中文乱码
1.1、中文乱码
create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user;
insert into user value("哈哈");
无法插入中文字符:
1.2、查看表字符编码
mysql> show create table user \G; *************************** 1. row *************************** Table: user Create Table: CREATE TABLE `user` ( `name` varchar(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
我们可以看到表的默认字符集是latin1.
所以我们在创建表的时候就需要指定表的字符集:
create table user(name varchar(11)) default charset=utf8;
这样在Linux里面可以访问并且可以插入与访问这个表了。
1.3、数据库与操作系统编码
虽然在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8。
而且数据库的编码也存在问题。
这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。
2、mysql设置变量的范围
2.1、session范围
查看数据库编码:
show variables like '%char%';
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 彻底解决MySQL使用中文乱码的方法
标签:mysql
相关推荐
评论
管理员已关闭评论功能...