最新遇到的小問題,這種問題一般出現在移動端使用手機填寫內容或者發布文章的時候輸入了一些emoji表情或者其他的表情,導致寫入的時候報錯,一般報錯內容是: Incorrect string value: '\xF0\x9F\xA4\x97\xF0\x9F...' for column 'content' at row 1。
遇到這種錯誤,有時候無法第一時間判斷問題出在哪里,我一開始以為是在截取內容的時候因為字符集的問題導致截取漢字的時候出現截取了半個漢字的問題導致的報錯,后來才發現是因為這種表情的問題,導致的報錯。
這個問題解決起來也很簡單,數據庫的字符集改為的utf8mb4格式,就可以解決這個問題。

有時候在創建數據庫的時候設置的就是utf8mb4的可能也不會生效,原因是因為.數據庫字符集的使用順序是:數據庫字符集 < 表字符集 < 表字段(列)字符集。可能你設置的數據庫是utf8mb4但是字段的字符集不是,所以最好是指定到對應的字段才好。
如果在創建表時沒有指定字符集,那么將默認使用數據庫的字符集。同樣地,如果在創建表的字段時沒有指定字符集,那么將默認使用表的字符集。
MySQL支持多種字符集,其中最常用的是utf8和utf8mb4。utf8mb4是utf8的超集,支持四字節長度的UTF8字符,包括emoji的編碼支持。
關鍵詞:



