Mysql伺服器無法存emoji表情的解決方案

llla發表於2019-03-23

使用Mysql伺服器的utf8字元編碼,在存入emoji表情時會報異常:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1

原因:
utf8是三位元組,utf8mb4是4位元組而emoji表情也是4位元組。

解決方法一-----逐個配置

  1. 修改資料庫編碼

Mysql伺服器無法存emoji表情的解決方案

  1. 修改表編碼

Mysql伺服器無法存emoji表情的解決方案

  1. 修改資料庫連線

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&autoReconnect=true&rewriteBatchedStatements=TRUE
username=root
password=root\

大於5.1.13的版本去掉characterEncoding=utf8就ok,不去掉都是這種錯:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94'

解決方法二-----全域性配置(具體配置意思可另做參考)

修改mysql配置檔案my.cnf(windows為my.ini)
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'

問題 參考:blog.csdn.net/a445849497/…

 資料庫顯示問號,可能是資料庫配置導致顯示問題,但是顯示出來是正常就沒有問題,
 但是如果顯示就有問題,那就是儲存的時候沒有按照utf8mb4儲存,或者資料庫設定存
 儲的字符集也不是utf8mb4。 最簡單的兩步驟 1、欄位字符集為utf8mb4
 ,然後插入資料的時候設定字符集也為utf8mb4 一般這樣即可
複製程式碼

相關文章