關於微信名稱特殊字元存資料庫出問題; Incorrect string value: ‘\xF0\x9F\x90\xAF’ for column ‘nickName’ at row 1
阿新 • • 發佈:2018-12-05
首先說一下為啥會出現這個問題:
我們的資料庫編碼通常為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