1. 程式人生 > >mysql表情存儲報錯問題

mysql表情存儲報錯問題

ring character 移動端 clas utf-8 def linux 查看 找到

mysql采用utf-8字符編碼,但在移動端使用輸入法的表情並存儲數據庫的時候,出現錯誤。

java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94‘...

經排查,原因在於utf-8編碼無法存儲表情字符。

解決步驟:

  1. 更改數據庫編碼為utf8mb4和utf8mb4_unicode_ci
  2. 更改所需要存儲表情的那張表的編碼為utf8mb4和utf8mb4_unicode_ci
  3. 更改表中存儲的那個字段的編碼為utf8mb4和utf8mb4_unicode_ci
  4. 項目的數據庫連接properties資源文件把URL的編碼參數去掉
    經過以上的操作,表情可以存儲到數據庫了,但是出現問題是全部變成了??亂碼
  5. 修改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‘

  6. 重啟mysql數據庫,重新查看字符集

    經過5、6兩個步驟,最後成功存儲表情,並且查詢顯示也是可以的。

mysql表情存儲報錯問題