最近在练习 MYSQL 语句的相关应用,经典的学校四张表(course、sc、student、teacher),想要将学生姓名和老师的姓名存入表中,但是一直报错不可以
[Err] 1366 - Incorrect string value: ‘\xE5\x8F\xB6\xE5\xB9\xB3’ for column ‘Tname’ at row 1
在网上查了一些方法,说是需要将数据库中的编码方式都应该变成 UFT-8 的形式,相应的列应该设置成 nvarchanr 的形式,相关语句如下所示:
show variables like "% character %"; --查询数据库当前编码方式
| character_set_client | gbk 客户端的编码 ***
|
| character_set_results | gbk 结果集的编码 ***
|
| character_set_connection | utf8 客户端连接的编码
|
| character_set_database | utf8 数据库默认使用的编码
|
| character_set_filesystem | BINARY 文件系统存放时使用的编码
|
| character_set_server | utf8 服务器编码 安装时指定的
|
| character_set_system | utf8 内部系统编码
需要统一将编码格式都改为 UFT-8。
set character_set_client = utf8;
set character_set_server = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set collation_connection = utf8_general_ci;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;
更改过的编码格式显示如下图所示: