MariaDB插入中文出现???情况
2017-07-20 11:02
344 查看
本来打算创建一个测试表进行一个简单的实验,发现创建完python_test表后插入数据后,select发现所有中文都变成问号了,这一看就是出现了乱码
MariaDB [lhc]> create table python_test( -> id int(11), -> name varchar(255), -> class_time int(11), -> PRIMARY KEY(id) -> ); Query OK, 0 rows affected (0.03 sec) MariaDB [lhc]>
/*插入数据*/ INSERT INTO python_test(id,name,class_time) value(1,'字典',3); INSERT INTO python_test(id,name,class_time) value(2,'列表',2); INSERT INTO python_test(id,name,class_time) value(3,'函数',5); INSERT INTO python_test(id,name,class_time) value(4,'装饰器',2); INSERT INTO python_test(id,name,class_time) value(5,'迭代器',2);
/*查看数据*/ MariaDB [lhc]> select * from python_test; +----+-----------+------------+ | id | name | class_time | +----+-----------+------------+ | 1 | ?? | 3 | | 2 | ?? | 2 | | 3 | ?? | 5 | | 4 | ??? | 2 | | 5 | ??? | 2 | +----+-----------+------------+ 5 rows in set (0.00 sec)
首先查看下MariaDB的默认编码格式
MariaDB [lhc]> show variables like "character_set_%" -> ; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+
发现上面的数据库的字符编码不是为utf8
/*修改为utf8编码格式*/ MariaDB [lhc]> set character_set_database=utf8; Query OK, 0 rows affected (0.00 sec) /*查看*/ MariaDB [lhc]> show variables like "character_set_%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | latin1 | | 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/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
查看数据还是问号,说明问题并不出现在数据库中,查看一下连接编码
MariaDB [lhc]> show variables like "collation_%"; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_swedish_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | +----------------------+-------------------+ 3 rows in set (0.00 sec)
可以发现问题就是出现在连接层。
解决方法
/**/ SET NAMES 'utf8'; /* 它相当于下面的三句指令: SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; */ /**/ /*创建数据库的时候指定编码格式*/ MariaDB [lhc]> create database python_test character set utf8; /**/ /*创建表的时候指定编码格式*/ MariaDB [lhc]> create table python_test( -> id int(11), -> name varchar(50) character set utf8, -> class_time int(11), -> PRIMARY KEY(id) -> )DEFAULT CHARSET=utf8;
如果已经创建完成的表或者数据库通过ALTER进行修改
/*修改某一个数据库*/ MariaDB [lhc]> ALTER database python_test character set utf8; /*修改某一个表*/ MariaDB [lhc]> ALTER table python_test character set utf8;
再次查看原乱码表就不乱码了
MariaDB [lhc]> select * from python_test; +----+-----------+------------+ | id | name | class_time | +----+-----------+------------+ | 1 | 字典 | 3 | | 2 | 列表 | 2 | | 3 | 函数 | 5 | | 4 | 装饰器 | 2 | | 5 | 迭代器 | 2 | +----+-----------+------------+
相关文章推荐
- hibernate插入Mysql数据库出现中文乱码情况从这5个方面解决
- 关于请求转发之后出现中文乱码的情况之一
- poi导出中文名出现乱码或者不出现的的情况
- java向MySQL数据库插入记录时出现中文乱码问题
- 在mysql数据库插入中文数据出现乱码(利用可视化工具不存在问题)
- JSP MySQL插入数据时出现中文乱码问题的解决方法
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- 将数据插入到Mysql数据库表中时,出现中文显示乱码问题
- 在浏览器传中文参数时在本地上转码是正常的,到服务器上出现乱码情况时解决方法
- MariaDB(mysql)中插入中文数据
- myeclipse导入别的项目时出现中文乱码的恶心人的情况
- 关于输入一条中文字段出现乱码情况
- MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法
- mysql 插入中文时出现ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern ame' at row 1
- 安装cx_Oracle模块步骤以及出现问题解决,还有中文乱码情况
- jquery 获取input中文值出现乱码情况
- Java_通过PreparedStatement往MySql数据库插入中文出现'?'乱码问题解决;
- 关于SQL文件一放到OracleSqlDeveloper中文字符就出现乱码的情况
- java web,charset编码设置正确情况下出现部分中文正常,部分中文乱码的问题
- 解决mySql中文乱码以及Eclipse插入中文出现乱码