亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

mysql存儲emoji表情報錯的處理方法【更改編碼為utf8mb4】

2024-07-25 19:08:41
字體:
來源:轉載
供稿:網友

本文實例分析了mysql存儲emoji表情報錯的處理方法。分享給大家供大家參考,具體如下:

utf-8編碼可能2個字節、3個字節、4個字節的字符,但是MySQL的utf8編碼只支持3字節的數據,而移動端的表情數據是4個字節的字符。如果直接往采用utf-8編碼的數據庫中插入表情數據,Java程序中將報SQL異常:

java.sql.SQLException: Incorrect string value: '/xF0/x9F/x92/x94' for column 'name' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)

可以對4字節的字符進行編碼存儲,然后取出來的時候,再進行解碼。但是這樣做會使得任何使用該字符的地方都要進行編碼與解碼。

utf8mb4編碼是utf8編碼的超集,兼容utf8,并且能存儲4字節的表情字符。
采用utf8mb4編碼的好處是:存儲與獲取數據的時候,不用再考慮表情字符的編碼與解碼問題。

更改數據庫的編碼為utf8mb4:

1. MySQL的版本

utf8mb4的最低mysql版本支持版本為5.5.3+,若不是,請升級到較新版本。

2. MySQL驅動

5.1.34可用,最低不能低于5.1.13

3.修改MySQL配置文件

修改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 = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect='SET NAMES utf8mb4'

4. 重啟數據庫,檢查變量

復制代碼代碼如下:
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

 

 

Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8mb4
character_set_system utf8
collation_connection utf8mb4_unicode_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci

 

collation_connection 、collation_database 、collation_server是什么沒關系。

但必須保證

 

系統變量 描述
character_set_client (客戶端來源數據使用的字符集)
character_set_connection (連接層字符集)
character_set_database (當前選中數據庫的默認字符集)
character_set_results (查詢結果字符集)
character_set_server (默認的內部操作字符集)

 

這幾個變量必須是utf8mb4。

5. 數據庫連接的配置

數據庫連接參數中:

characterEncoding=utf8會被自動識別為utf8mb4,也可以不加這個參數,會自動檢測。

autoReconnect=true是必須加上的。

6. 將數據庫和已經建好的表也轉換成utf8mb4

更改數據庫編碼:

復制代碼代碼如下:
ALTER DATABASE caitu99 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

 

更改表編碼:

 

復制代碼代碼如下:
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATEutf8mb4_general_ci;

 

如有必要,還可以更改列的編碼

7、在第3步設置character_set_database,character_set_server不成功的可以試下直接在mysql.exe下

set @@character_set_server='utf8mb4';set @@character_set_database='utf8mb4';

這下數據庫就可以存下emoji表情的編碼了。

附上我的my.ini

# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect='SET NAMES utf8mb4'# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required.# basedir = .....# datadir = .....# port = .....# server_id = .....# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

希望本文所述對大家MySQL數據庫計有所幫助。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影免费观看电视剧大全| 欧美精品久久久久| 欧美日韩一区二区三区在线免费观看| 成人在线精品视频| 久久久亚洲国产| 午夜剧场成人观在线视频免费观看| 在线播放日韩专区| 日韩在线观看视频免费| 97碰碰碰免费色视频| 日韩精品极品毛片系列视频| 日韩在线播放一区| 疯狂做受xxxx欧美肥白少妇| 91精品国产自产在线老师啪| 日韩美女在线播放| 国产97在线播放| 欧洲成人免费视频| 久久中国妇女中文字幕| 色综合伊人色综合网站| 国自在线精品视频| 日韩精品高清在线| 亚洲第一网中文字幕| 国产精品午夜国产小视频| 欧美日韩加勒比精品一区| 精品福利免费观看| 8x海外华人永久免费日韩内陆视频| 精品国产一区二区三区久久狼5月| 在线视频一区二区| 欧美黑人又粗大| 日韩欧美国产高清91| 亚洲精品午夜精品| 国产亚洲一区二区精品| 久久天天躁狠狠躁老女人| 久99九色视频在线观看| 欧美视频裸体精品| 欧美黄色片免费观看| 啊v视频在线一区二区三区| 国产精品91在线观看| 亚洲国产欧美日韩精品| 国产精品青青在线观看爽香蕉| 成人黄色短视频在线观看| 久久久久久69| 日韩专区中文字幕| 日韩av在线资源| 欧美国产激情18| 在线精品国产成人综合| 国产精品视频xxx| 国产欧美一区二区三区在线看| 国产精自产拍久久久久久蜜| 日韩美女在线观看| 欧美午夜片欧美片在线观看| 91精品国产自产91精品| 亚洲图片欧洲图片av| 色妞久久福利网| 亚洲人成电影网站色www| 精品久久久久人成| 亚洲a在线观看| 成人免费福利视频| 国产亚洲精品久久久| 永久555www成人免费| 大胆人体色综合| 亚洲视频在线观看| 国产视频久久久| 97香蕉超级碰碰久久免费软件| 久久久免费观看| 久久精品视频一| 国产精品jvid在线观看蜜臀| 欧美日韩国产综合新一区| 亚洲女同性videos| 国模视频一区二区三区| 国模私拍视频一区| 91九色综合久久| 日韩女优在线播放| 久久精品一本久久99精品| 日韩欧美在线观看视频| 色综合亚洲精品激情狠狠| 欧美精品一区三区| 色樱桃影院亚洲精品影院| 欧美视频专区一二在线观看| …久久精品99久久香蕉国产| 成人福利视频网| 精品国产欧美一区二区三区成人| 国产成人自拍视频在线观看| 在线观看不卡av| 精品夜色国产国偷在线| 国产91精品在线播放| 久久99久久久久久久噜噜| 欧美成人午夜影院| 91中文在线观看| 欧美国产日韩视频| 国产日韩欧美中文在线播放| 狠狠躁夜夜躁人人躁婷婷91| 色无极影院亚洲| 国产亚洲一区二区在线| 亚洲理论片在线观看| 国产xxx69麻豆国语对白| 欧美亚洲国产视频小说| 亚洲国产精品成人va在线观看| 日韩av免费在线观看| 亚洲欧美三级在线| 亚洲xxx大片| 亚洲最大的免费| 亚洲第一区第二区| 国产精品久久综合av爱欲tv| 自拍偷拍免费精品| 91av在线播放视频| 亚洲尤物视频网| 日韩中文字幕在线看| 性欧美视频videos6一9| 欧美黑人国产人伦爽爽爽| 欧美电影院免费观看| 国产日韩在线看| 国产在线视频91| 久久久久久尹人网香蕉| 亚洲视频在线免费看| 亚洲欧美在线x视频| 最新国产成人av网站网址麻豆| 欧美大胆a视频| 日韩影视在线观看| 秋霞午夜一区二区| 国产欧美亚洲精品| 成人天堂噜噜噜| 尤物九九久久国产精品的分类| 国产网站欧美日韩免费精品在线观看| 狠狠躁夜夜躁久久躁别揉| 亚洲人成77777在线观看网| 久久国产精品久久久| 亚洲丝袜在线视频| 日韩精品视频在线免费观看| 欧美激情综合色综合啪啪五月| 一区二区欧美日韩视频| 亚洲系列中文字幕| 91综合免费在线| 国产91ⅴ在线精品免费观看| 日韩动漫免费观看电视剧高清| 亚洲国产中文字幕久久网| 欧美天堂在线观看| 7777精品久久久久久| 久久人人97超碰精品888| 亚洲一区二区自拍| 黑人巨大精品欧美一区免费视频| 九九热视频这里只有精品| 最近中文字幕mv在线一区二区三区四区| 国产suv精品一区二区| 性欧美视频videos6一9| …久久精品99久久香蕉国产| 97香蕉超级碰碰久久免费软件| 欧美成人自拍视频| 九九热这里只有在线精品视| 久久影视电视剧免费网站| 97**国产露脸精品国产| 欧美一区亚洲一区| 日韩成人av在线| 亚洲黄色在线看| 中文字幕在线国产精品| 国产98色在线| 97精品在线视频| 92国产精品视频| 国产一区二区三区欧美| 亚洲最大成人在线| 成人激情综合网| 欧美在线视频在线播放完整版免费观看| 在线日韩av观看| 日韩专区在线播放| 亚洲电影免费观看高清完整版在线观看|