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