首先说明一下我的运行环境:Windows10系统、MariaDB。其中MariaDB里面的10.3.13和5.5.47这两个版本都测试过
大神请留步,已经为你们写出来了,就两点。
步骤:
- 修改编码为UTF8(chcp 65001)
- SET NAMES UTF8;
注意:如果关闭此窗口后就会恢复默认的GBK
看不懂的请往下继续看,有详细图文介绍
完整MySQL语句如下
//打开MySQL Client工具,输入数据库密码
Enter password: ****
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.3.13-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
//创建数据库user,字符设置为UTF8
MariaDB [(none)]> CREATE DATABASE user CHARACTER SET UTF8;
Query OK, 1 row affected (0.002 sec)
//使用user
MariaDB [(none)]> USE user;
Database changed
//创建 表 u_test () 引擎=INNODB 字符集=UTF8
MariaDB [user]> CREATE TABLE u_test (name VARCHAR(20),age INT,password CHAR(20))ENGINE=INNODB CHARSET=UTF8;
Query OK, 0 rows affected (0.016 sec)
//插入 到 u_test 值()
MariaDB [user]> INSERT INTO u_test VALUES('张三',18,'abc123');
Query OK, 1 row affected (0.004 sec)
//选择u_test里面*(*代表所有)数据
MariaDB [user]> SELECT * FROM u_test;
+------+------+----------+
| name | age | password |
+------+------+----------+
| ???? | 18 | abc123 |
+------+------+----------+
1 row in set (0.000 sec)
再用安装MariaDB自带的工具HeidiSQL查询看看
HeidiSQL工具里面显示正常,通过我自己的瞎琢磨是Windows10 CDM窗口编码的问题
果然让我猜对了,CDM默认是GBK编码,在网上找到了修改这个编码的方法
chcp 65001
方法如下:
MariaDB [user]> select * from u_test;
+------+------+----------+
| name | age | password |
+------+------+----------+
| ???? | 18 | abc123 |
| lisi | 26 | poiuyt |
+------+------+----------+
2 rows in set (0.000 sec)
MariaDB [user]> Ctrl-C -- exit!
Bye
C:\Program Files\MariaDB 10.3\bin>chcp 65001
输入 chcp 65001
现在查询直接从????问号变成了啥都没有了
不要捉急,输入这个就行了
SET NAMES UTF8;
这几天因为这个问题在网上找了好多,都是一模一样的复制粘贴过来的解决办法,有些还行,至少是自己一边一边测试的,另外一些人就直接原封不动的复制粘贴,实在不敢恭维。
他们的方法都是有用的,但针对于我所遇到的情况,无法完全解决。更加是因为自己傻逼了,等自己解决之后想好好的扇自己一巴掌,就是编码的问题我搞了这么久,服了服了。