mysql 存儲emoji表情

1.原則

若是要實現存儲emoji表情到MySQL實例,須要客戶端、到MySQL實例的鏈接、MySQL實例內部 3 個方面統一使用或者支持 utf8mb4 字符集。sql

2.三個條件說明

2.1 客戶端

以常見的 JDBC 鏈接爲例:
對於 JDBC 鏈接,須要使用 MySQL Connector/J 5.1.13(含)以上的版本。
JDBC 的鏈接串中,建議不配置 characterEncoding 選項。
複製代碼

2.2 MySQL實例的鏈接

經過 set names 命令設置會話字符集
在代碼中指定鏈接的字符集爲 utf8mb4,樣例代碼以下:
String query = 「set names utf8mb4」; stat.execute(query);
或者
druidDataSource.setConnectionInitSqls(Collections.singleton("SET NAMES utf8mb4"));
複製代碼

2.3 MySQL實例內部

修改庫:    
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
修改表:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改一列:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
複製代碼

備註: 修改庫和修改表經過那個Sql或者在Navicat這種可視化工具裏修改一下兩種方式均可以。工具

可是

修改一列不行,若是表中的數據以前是格式爲utf8 那麼你經過可視化工具修改至關於新增的數據按照utf8mb4來存儲的,老的數據仍是utf8來存儲的,這樣執行sql查詢的時候,仍是會報不支持emoji表情錯誤。因此保險一點,仍是執行上面的sql語句,不要經過可視化工具修改ui

相關文章
相關標籤/搜索