我的項目技術棧 flask + sqlalchemy + mysql,在這樣的架構下,我想要mysql能存Emoji表情。
我的項目技術棧 flask + sqlalchemy + mysql
在這樣的架構下,我想要mysql能存Emoji表情。
如果想在數據庫存emoji表情需要滿足以下幾種情況。
1: mysql 數據庫要改成utf8md4編碼格式,因為這樣才能存emoji四個字符的表情。
2: 客戶端也要改成utf8md4的編碼格式,這里的客戶端指的是后端工程師開發的服務器,只是相對于數據庫來說是是客戶端。其實就是在連接mysql的時候指定一下以什么編碼連接mysql數據庫。
CREATE DATABASE `database name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;11
[client] default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci[mysql] default-character-set = utf8mb4
略
SQLALCHEMY_DATABASE_URI = “mysql://賬號:密碼@ip:port/數據庫名?charset=utf8mb4”
主要在連接后面加上這個編碼
?charset=utf8mb4
數據庫里的表也要支持utf8md4 當我在阿里創建一個utf8mb4數據庫,
然后ORM遷移后就已經數據庫里的表就已經是utf8mb4編碼了。
SQLALCHEMY_DATABASE_URI = “mysql://賬號:密碼@ip:port/數據庫名?charset=utf8mb4”
主要在連接后面加上這個編碼
?charset=utf8mb4
參考
https://www.jianshu.com/p/57d544acdc1f
參考阿里的描述
概述 本文主要介紹RDS MySQL如何使用utf8mb4字符集存儲emoji表情。
詳細信息 阿里云提醒您:
如果您對實例或數據有修改、變更等風險操作,務必注意實例的容災、容錯能力,確保數據安全。
如果您對實例(包括但不限于ECS、RDS)等進行配置與數據修改,建議提前創建快照或開啟RDS日志備份等功能。
如果您在阿里云平臺授權或者提交過登錄賬號、密碼等安全信息,建議您及時修改。基本原則 如果要實現存儲emoji表情到RDS
MySQL實例,需要客戶端、到RDS實例的會話連接、RDS實例三個方面統一使用utf8mb4字符集。客戶端:客戶端需要保證輸出字符串的字符集為utf8mb4。
到RDS實例的會話連接:支持utf8mb4字符集。以常見的JDBC連接為例,需要使用MySQL Connector/J
5.1.13及以上的版本,JDBC的連接串中,建議不配置characterEncoding選項。 RDS實例:在RDS控制臺將character_set_server參數設置為utf8mb4,且數據庫和表的字符集也要設置為utf8mb4。修改字符集 如果字符集不符合以上基本原則,請參見RDS MySQL字符集相關說明修改字符集。
說明:由utf8修改為utf8mb4字符集不會影響之后的數據質量,且已經存在的數據也不受影響,但是數據存儲空間會有所增加。
適用于云數據庫RDS MySQL版
來源:https://blog.csdn.net/qq_46804698/article/details/137035001
來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。
Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利
蘇公網安備32010402000125
蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司
南京思必達教育科技有限公司版權所有 百度統計