mysql數據庫遇到某些字符無法插入問題 error 1366 Incorrect string value:'...' for column '...' at row 1

如果你遇到的問題是:在插入某些數據的時候,數據庫會報錯,而有一些數據卻不會。那麼以下的解決方法可能幫助到你。 

 一般情況下,我們在數據庫建庫的時候會指定編碼格式爲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字節的字符去除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章