1 異常
java.sql.BatchUpdateException: Incorrect string value: '\xF0\x9F\x8D\x83\xF0\x9F...' for column 'nickname' at row 1
通常情況尿招,Mysql數(shù)據(jù)編碼格式為“utf-8”,對于漢字來說足夠阱驾;Mysql中utf8占3個字節(jié)就谜,但是,3個字節(jié)對于表情符號是不夠的里覆,需4個字節(jié)丧荐;此時使用utf8,會出現(xiàn)‘\xF0\x9F\x8D\x83\xF0\x9F’的問題租谈。
2 解決辦法
utf8mb4編碼是utf8編碼的超集篮奄,兼容utf8捆愁,并且能存儲4字節(jié)的表情字符。
2.1 修改單個字段的編碼方式
ALTER TABLE insure_user CHANGE nickname nickname VARCHAR(64) CHARACTER SET utf8mb4 ;
2.2 修改整個數(shù)據(jù)庫修改編碼格式
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'