国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MySQL中utf8和utf8mb4有什么區別

汽車玩家 ? 來源:IT生涯 ? 作者:IT生涯 ? 2020-04-12 19:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、簡介

MySQL在5.5.3之后增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來兼容四字節的unicode。utf8mb4是utf8的超集,除了將編碼改為utf8mb4外不需要做其他轉換。當然,為了節省空間,一般情況下使用utf8也就夠了。

二、內容描述

那上面說了既然utf8能夠存下大部分中文漢字,那為什么還要使用utf8mb4呢? 原來mysql支持的 utf8 編碼最大字符長度為 3 字節,如果遇到 4 字節的寬字符就會插入異常了。三個字節的 UTF-8 最大能編碼的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文種平面(BMP)。也就是說,任何不在基本多文本平面的 Unicode字符,都無法使用 Mysql 的 utf8 字符集存儲。包括 Emoji 表情(Emoji是一種特殊的 Unicode 編碼,常見于 iosandroid 手機上),和很多不常用的漢字,以及任何新增的 Unicode 字符等等(utf8的缺點)。

通常,計算機在存儲字符時,會根據不同類型的字符以及編碼方式分配存儲空間。例如以下幾種編碼方式;

①ASCII編碼中,一個英文字母(不分大小寫)占用一個字節的空間,一個中文漢字占用兩個字節的空間。一個二進制的數字序列,在計算機中作為一個數字單元存儲時,一般為8位二進制數,換算為十進制。最小值0,最大值255。

②UTF-8編碼中,一個英文字符占用一個字節的存儲空間,一個中文(含繁體)占用三個字節的存儲空間。

③Unicode編碼中,一個英文占用兩個字節的存儲空間,一個中文(含繁體)占用兩個字節的存儲空間。

④UTF-16編碼中,一個英文字母字符或一個漢字字符存儲都需要占用2個字節的存儲空間(Unicode擴展區的一些漢字存儲需要4個字節)。

⑤UTF-32編碼中,世界上任何字符的存儲都需要占用4個字節的存儲空間。

既然utf8能兼容絕大部分的字符,為什么要擴展utf8mb4?

隨著互聯網的發展,產生了許多新類型的字符,例如emoji這種類型的符號,也就是我們通常在聊天時發的小黃臉表情,這種字符的出現不在基本多平面的Unicode字符之中,導致無法在MySQL中使用utf8存儲,MySQL于是對utf8字符進行了擴展,增加了utf8mb4這個編碼。

所以,設計數據庫時如果想要允許用戶使用特殊符號,最好使用utf8mb4編碼來存儲,使得數據庫有更好的兼容性,但是這樣設計會導致耗費更多的存儲空間。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • MySQL
    +關注

    關注

    1

    文章

    905

    瀏覽量

    29517
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    256Mb x4、x8、x16 SDRAM特性解析與應用指南

    256Mb x4、x8、x16 SDRAM特性解析與應用指南 在電子設計領域,SDRAM作為關鍵的存儲器件,其性能和特性對系統的整體表現起著至關重要的作用。今天,我們就來深入探討一下256Mb
    的頭像 發表于 02-02 16:05 ?348次閱讀

    行星減速機與齒輪減速機什么區別

    行星減速機與齒輪減速機什么區別
    的頭像 發表于 01-04 16:30 ?1259次閱讀
    行星減速機與齒輪減速機<b class='flag-5'>有</b><b class='flag-5'>什么區別</b>?

    武漢芯源MCU和英飛凌MCU什么區別

    武漢芯源MCU和英飛凌MCU什么區別
    發表于 12-11 06:26

    請問jtag和jlink什么區別啊?

    jtag和jlink什么區別啊?
    發表于 11-28 06:46

    微波雷達和毫米波雷達什么區別

    。今天就和大家說誰微波雷達和毫米波雷達什么區別 微波雷達和毫米波雷達的區別 其實微波雷達和毫米波雷達主要的區別就在于頻段,兩者本質上其實是一樣的,但是從名稱
    的頭像 發表于 10-30 16:56 ?2028次閱讀
    微波雷達和毫米波雷達<b class='flag-5'>有</b><b class='flag-5'>什么區別</b>

    labview怎么讀取UTF-16 LE 文本數據

    各位大佬 請問labview怎么讀取UTF-16 LE 文本數據 直接讀數據出來會有空格 但是空格無法刪除,請問怎么獲取UTF-16 LE格式數據
    發表于 10-10 11:23

    rt-thread程序的漢字字符串,如何提取漢字的gb2312編碼?

    我希望程序的漢字字串“歡迎光臨”取出來的字節數組是GB2312碼:“BB B6 D3 AD B9 E2 C1 D9 00”, 而實際出來的是UTF-8碼:“E6 AC A2 E8 BF 8
    發表于 09-29 07:14

    求助各位大佬,關于如何讀寫編碼格式為UTF-16LE的配置文件?

    如題,小白求助各位大佬,要怎么實現對編碼為UTF-16LE的配置文件的讀寫。 使用讀配置文件的vi讀不出內容。 使用讀文本的方式寫入異常,文件的編碼變成UTF-8且內容也不對。
    發表于 09-14 12:54

    終端GBK編碼顯示錯誤的原因?怎么解決?

    RT-thread studio終端,使用UTF8編碼中文顯示正常,使用GBK編碼時終端顯示亂碼。(以使用其他串口助手等核驗過串口數據,例如GBK下輸出“中文”D6 D0 CE C4,在
    發表于 09-11 07:50

    如何使用 UTF-8 編碼?

    如何使用 UTF-8 編碼?
    發表于 09-04 06:21

    CentOS 7下MySQL 8雙主熱備高可用架構全解

    Centos7部署MySQL8+keepalived雙主熱備(含Keepalived配置與GTID同步優化方案) 架構拓撲原理 GTID同步 VIP 192.168.1.100 MySQL主節點1
    的頭像 發表于 08-12 17:08 ?830次閱讀

    【創龍TL3562-MiniEVM開發板試用體驗】8、FreeType顯示矢量文字

    [utf_8_len] <<4)& 0xf0) ; word[len] = (unicode[0]<<8) | unicode[1
    發表于 08-05 11:54

    求助,關于STM32Cubemx 6.15版本生成工程的文件編碼的問題求解

    之前升級6.13和6.14版本的時候重新生成工程會將文件編碼強制轉換成UTF-8格式,導致中文注釋亂碼。但是在安裝文件夾下面的STM32CubeMX.l4j.ini文件里面添加一行
    發表于 07-29 12:31

    4K和8K顯示器驅動板的區別

    前面我們講到lhdh4k 4K屏USB3.0顯示方案以及驅動板出現噪音應該如何解決?,今天我們來聊一聊有關驅動板的新內容,4K顯示器驅動板和8
    的頭像 發表于 06-06 11:18 ?1828次閱讀

    GD32與STM32什么區別

    電子發燒友網站提供《GD32與STM32什么區別.docx》資料免費下載
    發表于 04-03 17:27 ?0次下載