diff --git a/docs/database/character-set.md b/docs/database/character-set.md index a65018cd..e59ebf7a 100644 --- a/docs/database/character-set.md +++ b/docs/database/character-set.md @@ -116,10 +116,10 @@ MySQL 支持很多种字符编码的方式,比如 UTF-8、GB2312、GBK、BIG5 MySQL中的字符集有以下的层次级别: -* `server` -* `database` -* `table` -* `column` +- `server` +- `database` +- `table` +- `column` 它们的优先级可以简单的认为是从上往下依次增大,也即 `column` 的优先级会大于 `table` 等其余层次的 @@ -202,9 +202,9 @@ CREATE TABLE t1 连接字符集与下面这几个变量息息相关: -* `character_set_client` (描述了客户端发送给服务器的SQL语句使用的是什么字符集) -* `character_set_connection` (描述了服务器接收到SQL语句时使用什么字符集进行翻译) -* `character_set_results` (描述了服务器返回给客户端的结果使用的是什么字符集) +- `character_set_client` (描述了客户端发送给服务器的SQL语句使用的是什么字符集) +- `character_set_connection` (描述了服务器接收到SQL语句时使用什么字符集进行翻译) +- `character_set_results` (描述了服务器返回给客户端的结果使用的是什么字符集) 它们的值可以通过下面的SQL语句查询: @@ -222,7 +222,7 @@ SHOW SESSION VARIABLES LIKE 'character\_set\_%'; 如果要想修改前面提到的几个变量的值,有以下方式: -* 修改配置文件 +- 修改配置文件 比如加上: @@ -232,7 +232,7 @@ SHOW SESSION VARIABLES LIKE 'character\_set\_%'; default-character-set=utf8mb4 ``` -* 使用SQL语句 +- 使用SQL语句 比如: @@ -250,9 +250,14 @@ set names utf8mb4 根据前面的内容,我们知道连接字符集也是会影响我们存储的数据的,而jdbc驱动会影响连接字符集。 -以 `DataGrip 2023.1.2` 来说,在它配置数据源的高级对话框中,可以看到 `characterSetResults` 的默认值是 `utf8` ,在使用 `jdbc driver 8.0.25` 时,连接字符集最后会被设置成 `utf8mb3` 。那么这种情况下emoji表情就会被显示为问号,并且当前版本驱动还不支持把 `characterSetResults` 设置为 `utf8mb4` ,不过换成 `jdbc driver 8.0.29` 却是允许的。 +`mysql-connector-java` (jdbc驱动)主要通过这几个属性影响连接字符集: -具体可以看一下StackOverflow的**[这个回答](https://stackoverflow.com/questions/54815419/datagrip-mysql-stores-emojis-correctly-but-displays-them-as/76625399#76625399)**。 +- `characterEncoding` +- `characterSetResults` + +以 `DataGrip 2023.1.2` 来说,在它配置数据源的高级对话框中,可以看到 `characterSetResults` 的默认值是 `utf8` ,在使用 `mysql-connector-java 8.0.25` 时,连接字符集最后会被设置成 `utf8mb3` 。那么这种情况下emoji表情就会被显示为问号,并且当前版本驱动还不支持把 `characterSetResults` 设置为 `utf8mb4` ,不过换成 `mysql-connector-java driver 8.0.29` 却是允许的。 + +具体可以看一下StackOverflow的 **[这个回答](https://stackoverflow.com/questions/54815419/datagrip-mysql-stores-emojis-correctly-but-displays-them-as/76625399#76625399)**。 ### UTF-8使用