MySql中存入表情
MySql的utf8編碼的一個字元最多3個位元組,但是一個emoji表情為4個位元組,所以utf8不支援儲存emoji表情。但是utf8的超級utf8mb4一個字元最多能有4位元組,所以能支援emoji表情的儲存。
1.修改MySql的配置檔案
[client]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake= FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
[mysql]
default-character-set=utf8mb4
2.修改database/table和column的字符集
1》修改database的字符集
ALTER DATABASE 資料庫名 CHARACTER SET =utf8mb4 COLLATE = utf8mb4_unicode_ci;
2》修改table的字符集
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3》修改column的字符集
ALTER TABLE 表名 CHANGE 欄位名 欄位名 該欄位原來的資料型別 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE route_comment CHANGE content content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3.檢查字符集
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
4.帶有emoji表情的sql檔案的匯入與匯出
1》匯出
在進行把字尾名為.sql的檔案,且檔案資料中包含emoji表情的資料,進行備份匯出的時候,此時不要使用第三方軟體進行匯出,而是使用命令列的形式執行該匯出動作,其主要原因是使用第三方匯出該檔案時,由於其預設的匯出的編碼格式為UTF-8,該編碼格式最多隻支援3個位元組,而一個emoji表情有4個位元組,這將導致emoji表情的資料變成亂碼。
一、開啟cmd,先找到mysqldump這個執行檔案所在的路徑;
二、在路徑後輸入mysqldump -default -character -set - utf8mb4 -u 使用者名稱 -p 資料庫名 > 匯出該檔案的物理路徑
2》匯入
匯入的命令不需要指明編碼格式,只需要正常的執行命令即可。