SQLAlchemy 支持特殊字符

postgresql 實踐
pydantic 實踐(一)基礎
pydantic 實踐(二)數據校驗
SQLAlchemy 介紹與實踐
SQLAlchemy 支持特殊字符

SQLAlchemy 支持特殊字符

  • 1. 字符集介紹分析
  • 2. MySQL 支持特殊字符
    • 2.1. 更新 MySQL 字符集為 utf8mb4
    • 2.2 更新已存在數據庫的字符集
      • 2.2.1. 更新數據庫字符集
      • 2.2.2. 更新數據表字符集
      • 2.2.3. 更新列的字符集
    • 2.3. 驗證 MySQL 是否成功支持特殊字符
  • 3. SQLAlchemy 支持 utf8mb4
    • 3.1. 設置引擎編碼方式為 utf8mb4
    • 3.2. 設置數據庫表編碼方式為 utf8mb4

??????????????????????????????????????????????

為什么 MySQL 默認不支持 Emoji 表情
數據庫字符集指的是數據庫中存儲的字符的編碼方式。常見的字符集包括 utf8、utf8mb4、latin1等。字符編碼是將字符映射為計算機中的二進制數據的方式。
MySQL 數據庫默認使用 utf8 字符集,該字符集最多只支持3字節的字符編碼。因此,當存儲4字節字符(如 Emoji 表情)時,MySQL 會將其存儲為亂碼或截斷。
Emoji 表情是一種特殊的字符,它的編碼超過了utf8 字符集所能表示的范圍,需要使用 utf8mb4 字符集才能正確存儲和處理。

1. 字符集介紹分析

參考:https://blog.csdn.net/AggressionStorm/article/details/100040588
utf8_general_ci 不區分大小寫,這個在注冊用戶名和郵箱的時候就要使用。
utf8_general_cs 區分大小寫,如果用戶名和郵箱用這個就會照成不良后果。
utf8_bin: compare strings by the binary value of each character in the string 將字符串每個字符串用二進制數據編譯存儲,區分大小寫,而且可以存二進制的內容。
utf8_unicode_ci 校對規則僅部分支持 Unicode 校對規則算法,一些字符還是不能支持。
utf8_unicode_ci 比較準確,utf8_general_ci 速度比較快。通常情況下 utf8_general_ci 的準確性就夠我們用的了,在我看過很多程序源碼后,發現它們大多數也用的是 utf8_general_ci,所以新建數據庫時一般選用 utf8_general_ci 就可以了

2. MySQL 支持特殊字符

參考:
https://blog.csdn.net/lsoxvxe/article/details/133953726
https://blog.csdn.net/AsuraDong/article/details/82227659

2.1. 更新 MySQL 字符集為 utf8mb4

首先,需要編輯 MySQL 的配置文件(my.cnf或my.ini),將默認字符集設置為 utf8mb4。在配置文件中找到以下配置項,并修改為:

[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

保存修改后的配置文件,并重啟 MySQL 服務,使配置生效。

sudo service mysql restart

2.2 更新已存在數據庫的字符集

2.2.1. 更新數據庫字符集

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

2.2.2. 更新數據表字符集

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2.2.3. 更新列的字符集

ALTER TABLE table_name MODIFY column_name column_type CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2.3. 驗證 MySQL 是否成功支持特殊字符

CREATE TABLE emoji_test (id INT PRIMARY KEY AUTO_INCREMENT,emoji VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);INSERT INTO emoji_test (emoji) VALUES ('');

3. SQLAlchemy 支持 utf8mb4

參考:https://www.cnblogs.com/jassin-du/p/8987170.html
官網:https://www.osgeo.cn/sqlalchemy/orm/declarative_tables.html

3.1. 設置引擎編碼方式為 utf8mb4

engine = create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/sqldb01?charset=utf8mb4")

3.2. 設置數據庫表編碼方式為 utf8mb4

class UserType(Base):__tablename__ = 'usertype'id = Column(Integer, primary_key=True)caption = Column(String(50), default='管理員')# 添加配置設置編碼__table_args__ = {'mysql_charset':'utf8mb4', 'mysql_collate':'utf8mb4_unicode_ci'}

這樣生成的 SQL 語句就自動設置數據表編碼為 utf8mb4了,__table_args__還可設置存儲引擎、外鍵約束等等信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73890.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73890.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73890.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何看待職場中的“向上管理”

向上管理的本質,是提供一份更精確的人力產品說明書, 利用市場的邏輯,引導領導,按照你的心意,使用你這款產品。 公司獲得更高的產出,領導獲得更多的成果,你獲得了自由支配的時間, 這是一場正和博弈。 ? 圖片來源:網絡 (1)具體案例: 把自己當成一款產品,使用者…

AIOHTTP

文章目錄 AIOHTTP主要特點庫安裝在一個命令中安裝所有加速 入門客戶端示例服務器示例: 開發模式aiohttp 3 有什么新功能?依賴關系 客戶端快速入門發起請求在 URL 中傳遞參數響應內容和狀態碼二進制響應內容JSON 請求 注意JSON 響應內容流式響應內容更復雜…

JavaFX基礎- Button 的基本使用

說明 本文記錄一下對Button的基本使用,包括但不限于 樣式的設置,事件的監聽等。 按鈕樣式的設置 方式一 : Java代碼的方式 // 創建一個按鈕Button button new Button("按鈕");// 設置按鈕的位置button.setLayoutX(50);button.set…

DeepSeek-R1國產大模型實戰:從私有化部署到內網穿透遠程使用全攻略

文章目錄 前言1. 安裝Ollama2. 安裝DeepSeek-r1模型3. 安裝圖形化界面3.1 Windows系統安裝Docker3.2 Docker部署Open WebUI3.3 添加Deepseek模型 4. 安裝內網穿透工具5. 配置固定公網地址 前言 最近,國產AI界的黑馬——Deepseek,簡直火得一塌糊涂。不過…

openwrt24.10.0版本上安裝istoreOS的屏幕監控插件

lcdsimple 插件支持在軟路由下面顯示統計信息到 HDMI 或者 VGA 上。 手動安裝方法: 保證 quickstart 版本大于 0.9.7 安裝 lcdsimple 具體方法: opkg update opkg install quickstart opkg install lcdsimple 手動下載 QUICKSTART 跟 LCD SIMPLE&…

卷積神經網絡 - ResNet(殘差網絡)

殘差網絡(Residual Network,ResNet)通過給非線性的卷積層增加直連邊 (Shortcut Connection)(也稱為殘差連接(Residual Connection))的方式來提高信息的傳播效率。 這是一種特殊的深度神經網絡結構,由 Kaiming He 等人在 2015 年提出,目的是解…

質因數個數--歐拉函數中統計純素數

和互質數不同&#xff0c;這里統計的是純素數部分 就是x/i那一部分 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int> PII; int n,m,k; ll eular(ll x) { ll an0;ll px;for(ll i2;i*i<x;i){if(x%i…

2025年3月電子學會c++五級真題

結繩 #include <bits/stdc.h> using namespace std;int n,a[10010];int main() {cin>>n;for(int i 0;i<n;i){cin>>a[i];}sort(a0,an);//將a數組從小到大排序double sum 0;for(int i 0;i<n;i){sum (suma[i])/2;}cout<<(int)sum;return 0; } 最…

用Nginx實現負載均衡與高可用架構(整合Keepalived)

前言 在分布式架構中&#xff0c;負載均衡和高可用是保障系統穩定性的兩大核心能力。本文將深入講解如何通過Nginx實現七層負載均衡&#xff0c;并結合Keepalived構建無單點故障的高可用架構。文末附完整配置模板&#xff01; 一、Nginx負載均衡實現方案 1. 核心原理 Nginx通…

springBoot與ElementUI配合上傳文件

以下是使用Vue CLI創建的Vue項目&#xff0c;結合Element UI來實現文件上傳功能的完整示例。 步驟 創建Vue項目&#xff1a;確保你已經安裝了Vue CLI&#xff0c;若未安裝&#xff0c;可使用以下命令安裝&#xff1a; npm install -g vue/cli然后創建一個新的Vue項目&#x…

黑盒測試的測試用例構成的八點要素

測試用例: 是為測試項目而設計的執行文檔 作用&#xff1a; 防止漏測實施測試的標準 編寫格式&#xff1a; 用例編號:項目 模塊 編號用例標題:預期結果(測試點)模塊/項目:所屬項目或模塊優先級:表示用例的重要程度或者影響力P0~p4(P0最高)前置條件:要執行此條用例&#xf…

藍橋刷題note11(好數)

1&#xff0c;好數 一個整數如果按從低位到高位的順序&#xff0c;奇數位 (個位、百位、萬位 ?? ) 上的數字是奇數&#xff0c;偶數位 (十位、千位、十萬位 ?? ) 上的數字是偶數&#xff0c;我們就稱之為 “好數”。 給定一個正整數 NN&#xff0c;請計算從 1 到 NN 一共…

Keil編譯生成的axf文件的介紹

在 Keil 開發環境&#xff08;如 Keil MDK&#xff09;中&#xff0c;.axf 文件是一種 可執行文件格式&#xff0c;主要用于 ARM 處理器的嵌入式開發。它的作用類似于 ELF&#xff08;Executable and Linkable Format&#xff09;格式&#xff0c;包含了可執行代碼、調試信息、…

C#:第一性原理拆解屬性(property)

目錄 第一步&#xff1a;從最基本的需求出發 第二步&#xff1a;引入控制需求 第三步&#xff1a;優化訪問方式 第四步&#xff1a;剖析屬性的本質 第五步&#xff1a;進一步簡化和演化 第六步&#xff1a;總結屬性的第一性原理 我們用第一性原理&#xff08;First Prin…

-PHP 應用文件上傳函數缺陷條件競爭二次渲染黑白名單JS 繞過

#學習前必讀&#xff1a; 1 、課前一定要明白&#xff1a; 無文件解析安全問題上&#xff0c;格式解析是一對一的&#xff08;不能 jpg 解析 php &#xff09; 換句話來說有解析錯誤配置或后綴解析漏洞時才能實現格式差異解析 2 、文件上傳安全指的是攻擊者通過利用上傳…

C++的模板(十四):更多的自動內存管理

在前文《C的模板(八)&#xff1a;子系統》class DMM&#xff0c;給出了一個自動動態內存管理的例子。https://blog.csdn.net/aaasssdddd96/article/details/139921880 它使用了一個list容器&#xff0c;把兩個類型兼容的指針存放在一起。在new的時候&#xff0c;隨即就把得到的…

Windows下VSCode的安裝

前言 VSCode的安裝看起來平平無奇&#xff0c;但也不是輕輕松松的。筆者將最新的Windows下安裝VSCode&#xff0c;以及運行最簡單的C程序的過程記錄下來&#xff0c;供后續的自己和大家參考。 一、官網下載安裝包 Visual Studio Code - Code Editing. Redefined 二、安裝 直接…

Matlab教程004:Matlab矩陣的拼接重構重排以及矩陣的運算

文章目錄 1.4.3 矩陣的拼接重構重排1.4.3.1 橫向拼接1.4.3.2 縱向拼接1.4.3.3 矩陣的重構重排 1.4.4 矩陣的運算1.4.4.1 算數運算1.4.4.2 矩陣加減1.4.4.3 矩陣乘法1.4.4.4 矩陣轉置 1.4.3 矩陣的拼接重構重排 1.4.3.1 橫向拼接 A和B的行數相同&#xff0c;那么使用[A,B]、[A …

Python小練習系列 Vol.3:生成有效括號組合(回溯 + DFS)

&#x1f9e0; Python小練習系列 Vol.3&#xff1a;生成有效括號組合&#xff08;回溯 DFS&#xff09; &#x1f44b; 本期我們來刷一道 LeetCode 熱門經典題&#xff0c;借此掌握回溯算法的精髓 —— 生成有效括號組合&#xff0c;是學習遞歸 & DFS 的黃金題型&#xff…

實戰經驗深度解析 | 博睿數據制造行業精選案例集發布!

近年來&#xff0c;我國制造業加速邁向高端化、智能化、綠色化&#xff0c;為經濟高質量發展注入新動能。放眼全球&#xff0c;制造業正加速數字化、智能化轉型&#xff0c;5G、人工智能、邊緣計算等技術與生產全流程深度融合&#xff0c;有力推動柔性化生產與產業鏈協同創新發…