Windows下Mariadb中文乱码问题
win10 在命令行使用Mariadb出现无法插入中文 并且之前正确插入的中文也无法正常显示了
ERROR 1366 (22007): Incorrect string value: ‘\xB1\xB1\xBE\xA9’ for column web.user.address at row 1
或者可以插入中文,但是显示不正确
MariaDB [web]> select * from comments;
+---------------------+--------------------------+---------+------+
| time | title | content | name |
+---------------------+--------------------------+---------+------+
| 2021-05-09 15:55:17 | 娴嬭瘯璇勮 | NULL | test |
| 2021-05-09 15:56:17 | 娴嬭瘯璇勮2 | NULL | test |
| 2021-05-09 16:04:26 | 18计科4班 | NULL | test |
| 2021-05-09 16:06:59 | 18计科4ç | NULL | NULL |
| 2021-05-09 16:11:17 | 测试评论 | NULL | test |
| 2021-05-09 16:13:37 | 测试评论 | NULL | test |
+---------------------+--------------------------+---------+------+
6 rows in set (0.003 sec)
先检查数据库和表的编码是否是utf8
我创建数据库和表的时候没有指定编码方式 所以这是表和数据库都是默认的latin编码方式 后来改了数据库的编码 但是没改表 这是创建新的表的时候就是用utf8了 但是之前那个几个表还是默认的latin 可以用
alter table 表名 change 字段名 字段名 字段类型 character set utf8;
来修改表的编码类型 但是我改完发现还是不行,要么是无法插入要么是乱码
这时候看到一篇博客提到了cmd的编码方式 cmd默认GBK编码方式 而数据库是utf8 所以就出错了
两种解决方法 把数据库改成gbk的或者修改cmd的编码方式
修改cmd编码方式:
输入chcp查看当前编码
C:\WINDOWS\system32>chcp
活动代码页: 936
chcp后面加上编码方式的代码修改编码方式
C:\WINDOWS\system32>chcp 65001
Active code page: 65001
编码方式代码如下
65001 :utf-8
20936 : GB2312
936 : GBK
437 :美国英语
修改完再插入数据就正常了
+---------------------+--------------------------+---------+------+
| time | title | content | name |
+---------------------+--------------------------+---------+------+
| 2021-05-09 15:55:17 | 娴嬭瘯璇勮 | NULL | test |
| 2021-05-09 15:56:17 | 娴嬭瘯璇勮2 | NULL | test |
| 2021-05-09 16:04:26 | 18计科4班 | NULL | test |
| 2021-05-09 16:06:59 | 18计科4ç | NULL | NULL |
| 2021-05-09 16:11:17 | 测试评论 | NULL | test |
| 2021-05-09 16:13:37 | 测试评论 | NULL | test |
| 2021-05-09 18:25:08 | 测试评论 | NULL | test |
| 2021-05-09 18:25:24 | 18计科4ç | NULL | test |
| 2021-05-09 18:26:18 | 18计科4ç | NULL | NULL |
| 2021-05-09 18:27:17 | 测试评论 | NULL | test |
+---------------------+--------------------------+---------+------+``
最后一行是修改完之后插入的