成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇講明白Utf8和Utf8mb4有什么區別

開發 前端
在計算機早期,主要使用ASCII編碼,只能表示128個字符,漢字完全表示不了。后來,才出現了各種各樣的編碼方式,比如GB2312、GBK、BIG5,但這些編碼只能在特定的環境下使用,不能全球通用。

utf8或者utf-8是大家常見的一個詞匯,它是一種信息的編碼格式,特別是不同開發平臺的系統進行對接的時候,編碼一定要對齊,否則就容易出現亂碼。

什么是編碼?

先說說什么是編碼。編碼就像我們日常生活中的語言,不同的地方說不同的話,編碼就是計算機用來表示這些“話”的一種方式。比如我們使用漢字來說話,計算機用二進制數來表示這些漢字的方式,就是編碼。

utf8就是這樣一種編碼格式,正式點要使用:UTF-8,utf8是一個簡寫形式。

為什么需要utf8?

在計算機早期,主要使用ASCII編碼,只能表示128個字符,漢字完全表示不了。后來,才出現了各種各樣的編碼方式,比如GB2312、GBK、BIG5,但這些編碼只能在特定的環境下使用,不能全球通用。

UTF-8就像一個萬能翻譯官,它的全稱是“Unicode Transformation Format - 8 bit”,注意這里不是說UTF-8只能使用8bit來表示一個字符,實際上UTF-8能表示世界上幾乎所有的字符。

它的特點是:

  • 變長編碼:一個字符可以用1到4個字節表示,英文字符用1個字節(8bit),漢字用3個字節(24bit)。
  • 向后兼容ASCII:ASCII的字符在UTF-8中還是一個字節,這樣就兼容了老系統。
  • 節省空間:對于英文字符,UTF-8比其他多字節編碼更省空間。

UTF-8適用于網頁、文件系統、數據庫等需要全球化支持的場景。

經常接觸代碼的同學應該還經常能看到 Unicode 這個詞,它和編碼也有很大的關系,其實Unicode是一個字符集標準,utf8只是它的一種實現方式。Unicode 作為一種字符集標準,為全球各種語言和符號定義了唯一的數字碼位(code points)。其它的Unicode實現方式還有UTF-16和UTF-32:

  • UTF-16 使用固定的16位(2字節)或者變長的32位(4字節,不在常用字符之列)來編碼 Unicode 字符。
  • UTF-32 每一個字符都直接使用固定長度的32位(4字節)編碼,不論字符的實際數值大小。這會消耗更多的存儲空間,但是所有字符都可以直接索引訪問。

圖片

utf8mb4又是什么?

utf8mb4并不常見,它是UTF-8的一個擴展版本,專門用于MySQL數據庫。MySQL在 5.5.3 之后增加了一個utf8mb4的編碼,mb4就是最多4個字節的意思(most bytes 4),它主要解決了UTF-8不能表示一些特殊字符的問題,比如Emoji表情,這在論壇或者留言板中也經常用到。大家使用小紅書時應該見過各種各樣的表情符號,小紅書后臺也可能使用utf8mb4保存它們。

編碼規則和特點:

  • 最多4個字節:utf8mb4中的每個字符最多用4個字節表示。
  • 支持更多字符:能表示更多的Unicode字符,包括Emoji和其他特殊符號。

utf8和utf8mb4的比較

存儲空間

  • 數據庫:utf8mb4每個字符最多用4個字節,比UTF-8多一個字節,存儲空間會增加。
  • 文件:類似的,文件用utf8mb4編碼也會占用更多的空間。

性能影響

  • 數據庫:utf8mb4的查詢和索引可能稍微慢一些,因為占用更多的空間和內存。
  • 網絡傳輸:utf8mb4編碼的字符會占用更多的帶寬,傳輸速度可能會稍慢。

不過因為實際場景中使用的utf8mb4的字符也不多,其實對存儲空間和性能的影響很小,大家基本沒有必要因為多占用了一些空間和流量,而不是用utf8mb4。

只是我們在定義字段長度、規劃數據存儲空間、網絡帶寬的時候,要充分考慮4字節帶來的影響,預留好足夠的空間。

實戰選擇

在實際開發中,選擇編碼要根據具體需求來定。如果你的網站或者應用需要支持大量的特殊字符和Emoji,使用utf8mb4是個不錯的選擇。如果主要是英文和普通中文文本,utf8足夠應付。

注意為了避免亂碼問題,前端、后端、數據庫都應該使用同一種編碼,比如utf8,具體到編碼時就是要確保數據庫連接、網頁頭部、文件讀寫都設置為相同的編碼。

另外還需要注意Windows和Linux系統中使用UTF-8編碼的文件可能是有差別的,Windows中的UTF-8文件可能會攜帶一個BOM頭,方便系統進行識別,但是Linux中不需要這個頭,所以如果要跨系統使用這個文件,特別是程序腳本,可能需要在Linux中去掉這個頭。


責任編輯:武曉燕 來源: 螢火架構
相關推薦

2024-05-29 13:05:44

2018-06-25 14:29:45

MySQLbug數據庫

2017-12-11 10:12:26

數據庫MySQL文本亂碼

2023-01-03 18:32:32

2021-10-13 14:06:46

MySQLUtf8符號

2024-08-07 09:02:51

2024-06-17 10:16:37

MySQLutf8mb4字節

2022-05-18 08:25:59

MySQLutf8字符集數據庫

2012-10-18 14:46:01

Windows RTWindows 8

2023-04-06 08:37:24

2016-09-12 16:19:38

MySQL存儲數據庫

2020-09-22 09:05:45

MySQLUTF-8utf8mb4

2025-05-13 01:10:00

數據產品開發

2023-12-15 09:21:17

ObjectJavaString

2021-07-20 08:23:49

HTTPWebSocketWeb

2021-05-12 07:43:02

LinuxUnicodeUTF-8

2021-05-08 07:14:38

MySQL數據庫安全性

2024-03-27 18:22:58

Hadoop部件生態

2022-07-27 07:45:53

二叉樹鏡像函數

2023-02-10 09:43:51

架構開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99国产精品久久久 | 久久国产精品一区二区三区 | 亚洲精品乱码久久久久久9色 | 午夜精品一区 | 二区在线视频 | 羞羞在线视频 | 国产三区视频在线观看 | 精品久久久久久久久久久久久久 | 成人午夜影院 | 91视频免费在观看 | 日本特黄a级高清免费大片 国产精品久久性 | 国产精品国产 | 国产精品不卡 | 九九热精品在线 | av天天看| 毛片在线视频 | 久草青青草 | 亚洲伊人a | 成人午夜免费福利视频 | 国产精品福利在线观看 | 97avcc| 精品一区二区久久久久久久网精 | 97中文视频| 欧美一级全黄 | 午夜影视大全 | 国产福利资源在线 | 欧美99| 国产精品一区二区三区在线 | 伊人久麻豆社区 | 日韩视频区 | 日韩在线观看一区 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 国产欧美日韩一区 | 91精品一区二区三区久久久久久 | 亚洲精品一区在线 | 刘亦菲国产毛片bd | 亚洲一区二区三区福利 | 91在线视频观看 | 成人欧美一区二区三区视频xxx | 午夜精品久久久久久久 | 亚洲一区国产 |