MySQL如何插入Emoji表情
前言
今天在設(shè)計(jì)開(kāi)源項(xiàng)目的反饋信息表時(shí)遇到了emoji表情插入失敗的問(wèn)題,網(wǎng)上找了很多解決方案,答案五花八門,沒(méi)找到好使的。
經(jīng)過(guò)一番折騰后,終于成功插入了emoji表情,本文就跟大家分享下我的實(shí)現(xiàn)過(guò)程,歡迎各位感興趣的開(kāi)發(fā)者閱讀本文。
寫在前面
我的服務(wù)器是Mac系統(tǒng),mysql使用brew安裝的,windows/linux它的配置文件位置可能有些不一樣,具體根據(jù)真實(shí)情況而定。
先跟大家看下它的報(bào)錯(cuò)信息:
chat_system> UPDATE chat_system.feedback t SET t.comments = ’反饋信息測(cè)試😂’ WHERE t.id = 1[2020-12-01 21:36:08] [HY000][1366] Incorrect string value: ’xF0x9Fx98x82’ for column ’comments’ at row 1[2020-12-01 21:36:08] [HY000][1366] Incorrect string value: ’xF0x9Fx98x82’ for column ’comments’ at row 1
實(shí)現(xiàn)思路
因?yàn)閿?shù)據(jù)庫(kù)默認(rèn)是UTF-8編碼格式,普通的字符串占位3個(gè)字節(jié)而表情占位4字節(jié),此時(shí)UTF-8就不夠用了,需要采用utf8mb4字符集就能解決這個(gè)問(wèn)題了。
注意:utf8mb4字符集要求數(shù)據(jù)庫(kù)版本高于5.5.3。
那么,我們要做的事情如下所示:
修改mysql配置文件,設(shè)置其編碼格式 修改數(shù)據(jù)庫(kù)字符集編碼 修改數(shù)據(jù)庫(kù)表字符集編碼實(shí)現(xiàn)過(guò)程
mysql默認(rèn)讀取配置的順序?yàn)椋?etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf,如果對(duì)應(yīng)目錄下不存在這些配置文件,則需要自己新建一個(gè)。
修改數(shù)據(jù)庫(kù)配置文件my.cnf,我的文件位置在: /usr/local/etc下,添加下述代碼[mysqld]character-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect = ’SET NAMES utf8mb4’character-set-client-handshake = false[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4 修改數(shù)據(jù)庫(kù)字符集編碼,登錄mysql后執(zhí)行下述sql語(yǔ)句。
# 設(shè)置數(shù)據(jù)庫(kù)字符集編碼,chat_system為數(shù)據(jù)庫(kù)名稱,根據(jù)自己的實(shí)際情況而來(lái)ALTER DATABASE chat_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 修改數(shù)據(jù)庫(kù)表的字符集編碼,登錄mysql后執(zhí)行下述sql語(yǔ)句。
# 設(shè)置數(shù)據(jù)庫(kù)表字符集編碼,chat_system.feedback_comment_reply為我的數(shù)據(jù)庫(kù)下對(duì)應(yīng)的表名稱,根據(jù)自己的實(shí)際情況而來(lái)ALTER TABLE chat_system.feedback_comment_reply CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
完成上述操作后,我們來(lái)看看是否修改成功,登錄mysql后執(zhí)行下述sql語(yǔ)句。
SHOW VARIABLES WHERE Variable_name LIKE ’character%’ OR Variable_name LIKE ’collation%’;
顯示下屬信息,則表示我們已經(jīng)修改完成了。
測(cè)試用例
我們來(lái)往插入一個(gè)emoji表情來(lái)測(cè)試下:
UPDATE chat_system.feedback t SET t.comments = ’反饋信息測(cè)試😂’ WHERE t.id = 1;
如下所示,沒(méi)有報(bào)錯(cuò),插入成功。
我們用dataGrap查看下數(shù)據(jù)庫(kù)表中的數(shù)據(jù),如下所示,它顯示了一個(gè)?,應(yīng)該是軟件無(wú)法識(shí)別。
講道理,應(yīng)該是插入成功了,我們用postman請(qǐng)求接口試下,成功顯示出來(lái)了😄。
以上就是MySQL如何插入Emoji表情的詳細(xì)內(nèi)容,更多關(guān)于MySQL 插入Emoji表情的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 用SQL語(yǔ)句查找Access中某表是否存在的小技巧2. MariaDB數(shù)據(jù)庫(kù)的外鍵約束實(shí)例詳解3. MySQL字符串拼接與分組拼接字符串實(shí)例代碼4. centos 7安裝mysql5.5和安裝 mariadb使用的命令5. Centos7 下mysql重新啟動(dòng)MariaDB篇6. MySQL該如何判斷不為空詳析7. SQL Server使用CROSS APPLY與OUTER APPLY實(shí)現(xiàn)連接查詢8. Window7安裝MariaDB數(shù)據(jù)庫(kù)及系統(tǒng)初始化操作分析9. Access 執(zhí)行SQL的方法10. SQLite 性能優(yōu)化實(shí)例分享
