Incorrect string value: '\xF0\x9F\x98\xB3)\xE3...' for column 'content'解決辦法
原因解析:我們的評論數據中存在emoj表情,而這些表情是按照四個字節一個單位進行編碼的,而我們通常使用的utf-8編碼在mysql數據庫中默認是按照3個字節一個單位進行編碼的,正是這個原因導致將數據存入mysql數據庫的時候出現錯誤
解決思路:(1):修改mysql數據庫的編碼爲uft8mb4 (2):修改數據表的編碼爲utf8mb4 (3):修改字段的編碼爲utf8mb4 (4):修改連接數據庫的連接代碼
1、修改數據庫編碼
(1)修改 mysql 配置文件 Windows 是my.ini,Linux 和 Mac my.cnf 這裏介紹 Linux 下的修改方法 編輯 /etc/my.cnf 文件 該文件僅可讀,需要修改權限 sudo chown 755 /etc/my.cnf sudo vim /etc/my.cnf
內容如下:
[client]
#... 其他內容
default-character-set=utf8mb4
[mysqld]
#... 其他內容
collation-server = utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
default-character-server=utf8mb4
[mysql]
#... 其他內容
default-character-set=utf8mb4
(2) Navicat 軟件裏修改 數據庫屬性
2、數據表修改
修改 對應表的編碼
3、修改字段(必須改,這裏是個坑)
把一張表裏所有的字段編碼都改成 utfmb4
alter table `你的表` convert to character set utf8mb4
4、修改數據庫連接URL
mysql.url=jdbc:mysql://localhost:3306/yuedui?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&rewriteBatchedStatements=TRUE
參考文獻,感謝該大神的分享
http://blog.liuyanzhao.com/article/8298