最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL如何插入Emoji表情

 更新時間:2020年12月03日 12:00:23   作者:神奇的程序員  
這篇文章主要介紹了MySQL如何插入Emoji表情,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下

前言

今天在設(shè)計開源項目的反饋信息表時遇到了emoji表情插入失敗的問題,網(wǎng)上找了很多解決方案,答案五花八門,沒找到好使的。

經(jīng)過一番折騰后,終于成功插入了emoji表情,本文就跟大家分享下我的實現(xiàn)過程,歡迎各位感興趣的開發(fā)者閱讀本文。

寫在前面

我的服務(wù)器是Mac系統(tǒng),mysql使用brew安裝的,windows/linux它的配置文件位置可能有些不一樣,具體根據(jù)真實情況而定。

先跟大家看下它的報錯信息:

chat_system> UPDATE chat_system.feedback t SET t.comments = '反饋信息測試😂' WHERE t.id = 1
[2020-12-01 21:36:08] [HY000][1366] Incorrect string value: '\xF0\x9F\x98\x82' for column 'comments' at row 1
[2020-12-01 21:36:08] [HY000][1366] Incorrect string value: '\xF0\x9F\x98\x82' for column 'comments' at row 1

實現(xiàn)思路

因為數(shù)據(jù)庫默認(rèn)是UTF-8編碼格式,普通的字符串占位3個字節(jié)而表情占位4字節(jié),此時UTF-8就不夠用了,需要采用utf8mb4字符集就能解決這個問題了。

注意:utf8mb4字符集要求數(shù)據(jù)庫版本高于5.5.3。

那么,我們要做的事情如下所示:

  • 修改mysql配置文件,設(shè)置其編碼格式
  • 修改數(shù)據(jù)庫字符集編碼
  • 修改數(shù)據(jù)庫表字符集編碼

實現(xiàn)過程

mysql默認(rèn)讀取配置的順序為:/etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf,如果對應(yīng)目錄下不存在這些配置文件,則需要自己新建一個。

  • 修改數(shù)據(jù)庫配置文件my.cnf,我的文件位置在: /usr/local/etc下,添加下述代碼
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
character-set-client-handshake = false
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4

  • 修改數(shù)據(jù)庫字符集編碼,登錄mysql后執(zhí)行下述sql語句。
# 設(shè)置數(shù)據(jù)庫字符集編碼,chat_system為數(shù)據(jù)庫名稱,根據(jù)自己的實際情況而來
ALTER DATABASE chat_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 修改數(shù)據(jù)庫表的字符集編碼,登錄mysql后執(zhí)行下述sql語句。
# 設(shè)置數(shù)據(jù)庫表字符集編碼,chat_system.feedback_comment_reply為我的數(shù)據(jù)庫下對應(yīng)的表名稱,根據(jù)自己的實際情況而來
ALTER TABLE chat_system.feedback_comment_reply CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

完成上述操作后,我們來看看是否修改成功,登錄mysql后執(zhí)行下述sql語句。

SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';

顯示下屬信息,則表示我們已經(jīng)修改完成了。

測試用例

我們來往插入一個emoji表情來測試下:

UPDATE chat_system.feedback t SET t.comments = '反饋信息測試😂' WHERE t.id = 1;

如下所示,沒有報錯,插入成功。

我們用dataGrap查看下數(shù)據(jù)庫表中的數(shù)據(jù),如下所示,它顯示了一個?,應(yīng)該是軟件無法識別。

講道理,應(yīng)該是插入成功了,我們用postman請求接口試下,成功顯示出來了😄。

以上就是MySQL如何插入Emoji表情的詳細(xì)內(nèi)容,更多關(guān)于MySQL 插入Emoji表情的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何解決mysql執(zhí)行導(dǎo)入sql文件速度太慢的問題

    如何解決mysql執(zhí)行導(dǎo)入sql文件速度太慢的問題

    文章介紹了一種通過修改MySQL導(dǎo)出命令參數(shù)來優(yōu)化大SQL文件導(dǎo)入速度的方法,通過對比目標(biāo)庫和導(dǎo)出庫的參數(shù)值,并使用優(yōu)化后的參數(shù)進(jìn)行導(dǎo)出,再在目標(biāo)庫導(dǎo)入,顯著提高了導(dǎo)入速度
    2024-11-11
  • mysql查詢獲得兩個時間的時間差方式

    mysql查詢獲得兩個時間的時間差方式

    這篇文章主要介紹了mysql查詢獲得兩個時間的時間差方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 最新評論

    韶关市| 岳池县| 洛宁县| 姜堰市| 两当县| 平遥县| 汕头市| 景洪市| 同心县| 华亭县| 隆尧县| 山阴县| 建湖县| 邹平县| 崇义县| 古丈县| 鹰潭市| 南乐县| 固镇县| 邮箱| 德令哈市| 准格尔旗| 阳曲县| 河津市| 宁陕县| 西安市| 山丹县| 弋阳县| 临安市| 房产| 巴楚县| 台北市| 万安县| 甘孜| 平江县| 漳浦县| 洪洞县| 龙川县| 梨树县| 海丰县| 五家渠市|