1. 程式人生 > >關於微信名稱特殊字元存資料庫出問題; Incorrect string value: ‘\xF0\x9F\x90\xAF’ for column ‘nickName’ at row 1

關於微信名稱特殊字元存資料庫出問題; Incorrect string value: ‘\xF0\x9F\x90\xAF’ for column ‘nickName’ at row 1

首先說一下為啥會出現這個問題:

我們的資料庫編碼通常為UTF8,MYSQL的UTF8編碼最多3個位元組,EMOJI表情或者某些特殊字元的編碼是4個位元組,導致存入資料庫時發生了異常。

解決辦法:

1.

  • 修改該欄位的編碼格式:ALTER TABLE t_game_player CHANGE nickName nickName VARCHAR(255) CHARACTER SET utf8mb4;
  • 修改資料庫的編碼格式

    資料庫安裝在WINDOWS上>>>
    在資料庫根目錄下找到my.ini(5.7版本好像預設是沒有這個配置檔案,可以自己建立一個),新增一行:character-set-server=utf8mb4,最後重啟資料庫就解決這個問題了。

    購買阿里雲的RDS-MYSQL>>>
    進入資料庫例項管理頁面,有個引數管理,修改引數:character_set_server

  • 參考地址:https://blog.csdn.net/xmasq_feiyu/article/details/79315660?utm_source=copy

2.

使用背景:Jpa框架

解決方案:直接在navicat修改編碼集此方案試了沒有用。

在jpa-context.xml的dataSource定義上添加了即可:

<property name="connectionInitSqls" value="set names utf8mb4;" />

參考地址:https://blog.csdn.net/weixin_39716452/article/details/81910983?utm_source=copy