mySql存儲emoji表情報錯(mysql incorrect string value)

問題分析

  • 普通的字符串或者表情都是佔位3個字節,因此utf8足夠用了,可是移動端的表情符號佔位是4個字節,普通的utf8就不夠用了,爲了應對無線互聯網的機遇和挑戰、避免 emoji 表情符號帶來的問題、涉及無線相關的 MySQL 數據庫建議都提早採用 utf8mb4 字符集,這必需要做爲移動互聯網行業的一個技術選型的要點
  • Mysql 版本的限制,Mysql 5.5.3以前的版本,支持的utf8爲3字節的,Mysql 5.5.3以後的版本支持utf8mb4

解決方案mysql

  • 修改mysql的配置文件,linux下yum安裝的mysql的配置文件在/etc/my.cnf
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
  • 將數據庫中對應的字段,改成utf8mb4_unicode_ci
  • 修改項目中的鏈接數據庫的url,將characterEncoding=utf-8去掉,此步驟必定要進行。
相關文章
相關標籤/搜索