emoji錯(cuò)誤:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value:

原因在于mysql數(shù)據(jù)庫編碼格式utf8默認(rèn)保存的是1到3個(gè)字節(jié),而emoji表情采用4個(gè)字節(jié)保存,所以拋出異常。因此需要將編碼格式轉(zhuǎn)換為utf8mb4(mysql版本大于5.5

設(shè)置數(shù)據(jù)庫編碼

// 設(shè)置編碼
SET NAMES utf8mb4; 
ALTER DATABASE `database_name` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

查看數(shù)據(jù)庫當(dāng)前編碼狀態(tài)

// 查看編碼狀態(tài)
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
// 查看編碼是否如下所示
character_set_client  utf8mb4
character_set_connection  utf8mb4
character_set_database    utf8mb4
character_set_filesystem  binary
character_set_results utf8mb4
character_set_server  utf8mb4
character_set_system  utf8
character_sets_dir    /usr/local/mysql/share/charsets/
collation_connection  utf8mb4_general_ci
collation_database    utf8mb4_general_ci
collation_server  utf8mb4_unicode_ci

設(shè)置mysql連接chatset編碼

// 最容易被忽略的步驟:mysql連接組件
var connection = mysql.createConnection({
    host : 'host',
    user : 'user',
    password : 'password',
    database : 'database',
    charset : 'utf8mb4'
});

原文地址:http://www.fidding.me/article/43

happy coding!

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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