免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
MySQL 解決 emoji表情 的方法,使用utf8mb4 字符集(4字節(jié) UTF

前段時(shí)間做項(xiàng)目遇到APP評(píng)論中有 emoji 表情符號(hào),結(jié)果導(dǎo)致插入 MySQL 數(shù)據(jù)庫(kù)失敗,時(shí)隔好久了,現(xiàn)在整理一下。

一、基本原則

如果要實(shí)現(xiàn)存儲(chǔ) emoji 表情到 MySQL 實(shí)例,需要應(yīng)用客戶端、到 MySQL 實(shí)例的連接、MySQL 實(shí)例內(nèi)部 3 個(gè)方面統(tǒng)一使用或者支持 utf8mb4 字符集。

注:關(guān)于 utf8mb4 字符集,請(qǐng)參考 utf8mb4 字符集(4字節(jié) UTF-8 Unicode 編碼)

二、三個(gè)條件的說(shuō)明

1、應(yīng)用客戶端

客戶端需要保證輸出的字符串的字符集為 utf8mb4。

注:utf8mb4只是MySQL中的概念,因?yàn)镸ySQL的UTF-8并不是真正意義上的UTF-8,我們的應(yīng)用中只要使用UTF-8就可以了。

2、應(yīng)用到 RDS MySQL 實(shí)例的連接

以常見(jiàn)的 JDBC 連接為例:
對(duì)于 JDBC 連接,需要使用 MySQL Connector/J 5.1.13(含)以上的版本。
JDBC 的連接串中,不配置 characterEncoding 選項(xiàng)。連接器會(huì)自動(dòng)匹配識(shí)別字符集。
注:關(guān)于 MySQL Connector/J 5.1.13,請(qǐng)參考 MySQL 官方 Release Notes
比如

  1. url=jdbc:mysql://localhost:3306/db_name?useUnicode=true&zeroDateTimeBehavior=convertToNull  

3、MySQL 實(shí)例配置

3.1、修改my.cnf配置文件

這里使用VI來(lái)修改,輸入命令:vi /usr/my.cnf 回車(chē);打開(kāi)文件后按“i”鍵進(jìn)入編輯狀態(tài);
在“[mysqld]”下面添加“character_set_server=utf8mb4”,按Esc鍵進(jìn)入命令模式,輸入“:wq”回車(chē)(保存并退出)。

macOS下的路徑可能是:/usr/local/mysql/my.cnf

注意:必須重新啟動(dòng) MySQL 實(shí)例;

3.2、設(shè)置庫(kù)的字符集為 utf8mb4

可以使用工具來(lái)設(shè)置數(shù)據(jù)庫(kù)屬性:


3.3、設(shè)置表的字符集為 utf8mb4

  1. create table emoji_table (  

  2.     id int auto_increment primary key,  

  3.     content varchar(255)  

  4. )  default charset utf8mb4;  

三、通過(guò) set names 命令設(shè)置會(huì)話字符集

對(duì)于 JDBC 連接串設(shè)置了 characterEncoding 為 utf8 或者做了上述配置仍舊無(wú)法正常插入 emoji 數(shù)據(jù)的情況,建議在代碼中指定連接的字符集為 utf8mb4,樣例代碼如下:
  1. String sqlCharset = "set names utf8mb4"  

  2. Statement statment = conn.createStatement();  

  3. resultSet = statment.executeQuery(sqlCharset);  

注: set names utf8mb4; 命令會(huì)將 character_set_client、character_set_connection、character_set_results 3個(gè)會(huì)話字符集相關(guān)變量均設(shè)置為 utf8mb4,以保證寫(xiě)入或者讀出的數(shù)據(jù)使用 utf8mb4 字符集進(jìn)行解釋。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
關(guān)于用 MySQL 存儲(chǔ) Emoji
MySQL utf8mb4字符集:支持emoji表情符號(hào)
綜合網(wǎng)上解決mysql 5.7保存emoji 失敗問(wèn)題
mysql字符集問(wèn)題
求求你,別在MySQL中使用UTF-8了!
數(shù)據(jù)庫(kù)存儲(chǔ)emoji表情
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服