如果你遇到的問題是:在插入某些數據的時候,數據庫會報錯,而有一些數據卻不會。那麼以下的解決方法可能幫助到你。
一般情況下,我們在數據庫建庫的時候會指定編碼格式爲utf8,如:
CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
問題就出現在編碼格式上,將其改爲utf8mb4即可,如:
CREATE DATABASE `test` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
如果你很幸運,那麼只要將數據庫和表的字符編碼改爲utf8mb4即可,如果不幸的修改失敗了,那麼以下內容可能需要了解下:
1.utf8mb4 從mysql5.5.3以上纔有,如果你的系統有繁體或其他某些特殊字符編碼如Emoji ,建議升級
注:
utf8mb4 會多消耗一些空間,原理在於utf8只有3個字節,而utf8mb4有4個字節。根據 Mysql 官方建議,使用 VARCHAR 替代 CHAR。此外,從原理可以看出utf8可以很平滑的切換的uf8mb4,而utf8mb4切換到utf8需要將數據庫裏面所有佔4字節的字符去除。