MySQL設定utf8mb4編碼
阿新 • • 發佈:2019-02-08
有一個專案需要儲存ios的表情(emoji表情)
這種表情雖然是utf8編碼,但是一個字元需要佔用4個位元組,而MySQL utf8編碼只能存放3位元組的字元。
在MySQL 5.6中,可以設定編碼為utf8mb4,這個字符集是utf8的超集。
首先,修改mysql的配置檔案
character_set_server=utf8mb4
然後重啟資料庫和中介軟體.
點選兩個測試的連結,檢視資料庫,發現數據成功插入。
不過還有三種方式可以設定字符集
1.不顯式設定字符集,繼承伺服器的配置
2.在執行SQL之前,執行set names 的查詢 (Query方式)
3.設定MySQL init_connect引數
經過測試各種因素的結果如下所示:
JDBC版本 | 普通中文 | 蘋果表情 | |
伺服器utf8編碼 | 5.1.6 | 正常 | 插入報錯 |
5.1.6 Query | 正常 | 正常 | |
5.1.6 init_connect | 正常 | 插入報錯 | |
5.1.31 | 正常 | 插入報錯 | |
5.1.31 Query | 正常 | 正常 | |
5.1.31 init_connect | 正常 | 插入報錯 | |
伺服器utf8mb4編碼 |
5.1.6 | 亂碼 | 亂碼 |
5.1.6 Query | 亂碼 | 亂碼 | |
5.1.6 init_connect | 亂碼 | 亂碼 | |
5.1.31 | 正常 | 正常 | |
5.1.31 Query | 正常 | 正常 | |
5.1.31 init_connect | 正常 | 正常 |
1.修改了character_set_server引數,需要重啟資料庫
2.使用高版本的JDBC