Incorrect string value XF0 X9F X98 XB3 XE3 for column 解決辦法

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
 

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