mysql導(dǎo)入emoji數(shù)據(jù)亂碼

想要mysql表支持emoji,需要設(shè)置表編碼為utf8mb4

CREATE TABLE `sample` (
                 `date` char(10) DEFAULT NULL,
                 `w1` varchar(50) DEFAULT NULL,
                 `w2` varchar(255) DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4

mysql的字符集的作用域有三個(gè)層級(jí)一個(gè)數(shù)據(jù)庫級(jí),一個(gè)是表級(jí),一個(gè)是列級(jí)(字段級(jí)別的)。優(yōu)先級(jí)是:列級(jí)>表級(jí)>數(shù)據(jù)庫級(jí),表編碼無法修改的情況下可以設(shè)置字段編碼

alter table admin modify w2 varchar(255) charset utf8mb4;

以上修改完成發(fā)現(xiàn)通過Load導(dǎo)入的數(shù)據(jù)還是亂碼,但是手動(dòng)修改的數(shù)據(jù)可以支持

update sample set w2 = '惹不起我躲得起??';

原因是不僅僅表要修改,連接的客戶端也需要修改,執(zhí)行的命令也需要設(shè)置編碼格式

set names utf8mb4;--緊設(shè)置這個(gè)地方不起作用
delete from sample where date = '${excuDate}';
load data local infile 'rs/sample.txt'  into table sample character set utf8mb4;-- 關(guān)鍵是此處
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容