mysql表情存儲報錯問題
阿新 • • 發佈:2017-08-30
ring character 移動端 clas utf-8 def linux 查看 找到
mysql采用utf-8字符編碼,但在移動端使用輸入法的表情並存儲數據庫的時候,出現錯誤。
java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94‘...
經排查,原因在於utf-8編碼無法存儲表情字符。
解決步驟:
- 更改數據庫編碼為utf8mb4和utf8mb4_unicode_ci
- 更改所需要存儲表情的那張表的編碼為utf8mb4和utf8mb4_unicode_ci
- 更改表中存儲的那個字段的編碼為utf8mb4和utf8mb4_unicode_ci
- 項目的數據庫連接properties資源文件把URL的編碼參數去掉
經過以上的操作,表情可以存儲到數據庫了,但是出現問題是全部變成了??亂碼 - 修改mysql配置文件my.cnf(windows為my.ini,linux為my.cnf)
my.cnf一般在etc/mysql/my.cnf位置。找到後請在以下三部分裏添加如下內容:
[client]
default-character-set = utf8mb4
[MySQL]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4‘
- 重啟mysql數據庫,重新查看字符集
經過5、6兩個步驟,最後成功存儲表情,並且查詢顯示也是可以的。
mysql表情存儲報錯問題