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

一篇講明白Utf8和Utf8mb4有什么區(qū)別

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

utf8或者utf-8是大家常見的一個(gè)詞匯,它是一種信息的編碼格式,特別是不同開發(fā)平臺(tái)的系統(tǒng)進(jìn)行對(duì)接的時(shí)候,編碼一定要對(duì)齊,否則就容易出現(xiàn)亂碼。

什么是編碼?

先說說什么是編碼。編碼就像我們?nèi)粘I钪械恼Z言,不同的地方說不同的話,編碼就是計(jì)算機(jī)用來表示這些“話”的一種方式。比如我們使用漢字來說話,計(jì)算機(jī)用二進(jìn)制數(shù)來表示這些漢字的方式,就是編碼。

utf8就是這樣一種編碼格式,正式點(diǎn)要使用:UTF-8,utf8是一個(gè)簡(jiǎn)寫形式。

為什么需要utf8?

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

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

它的特點(diǎn)是:

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

UTF-8適用于網(wǎng)頁(yè)、文件系統(tǒng)、數(shù)據(jù)庫(kù)等需要全球化支持的場(chǎng)景。

經(jīng)常接觸代碼的同學(xué)應(yīng)該還經(jīng)常能看到 Unicode 這個(gè)詞,它和編碼也有很大的關(guān)系,其實(shí)Unicode是一個(gè)字符集標(biāo)準(zhǔn),utf8只是它的一種實(shí)現(xiàn)方式。Unicode 作為一種字符集標(biāo)準(zhǔn),為全球各種語言和符號(hào)定義了唯一的數(shù)字碼位(code points)。其它的Unicode實(shí)現(xiàn)方式還有UTF-16和UTF-32:

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

圖片

utf8mb4又是什么?

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

編碼規(guī)則和特點(diǎn):

  • 最多4個(gè)字節(jié):utf8mb4中的每個(gè)字符最多用4個(gè)字節(jié)表示。
  • 支持更多字符:能表示更多的Unicode字符,包括Emoji和其他特殊符號(hào)。

utf8和utf8mb4的比較

存儲(chǔ)空間

  • 數(shù)據(jù)庫(kù):utf8mb4每個(gè)字符最多用4個(gè)字節(jié),比UTF-8多一個(gè)字節(jié),存儲(chǔ)空間會(huì)增加。
  • 文件:類似的,文件用utf8mb4編碼也會(huì)占用更多的空間。

性能影響

  • 數(shù)據(jù)庫(kù):utf8mb4的查詢和索引可能稍微慢一些,因?yàn)檎加酶嗟目臻g和內(nèi)存。
  • 網(wǎng)絡(luò)傳輸:utf8mb4編碼的字符會(huì)占用更多的帶寬,傳輸速度可能會(huì)稍慢。

不過因?yàn)閷?shí)際場(chǎng)景中使用的utf8mb4的字符也不多,其實(shí)對(duì)存儲(chǔ)空間和性能的影響很小,大家基本沒有必要因?yàn)槎嗾加昧艘恍┛臻g和流量,而不是用utf8mb4。

只是我們?cè)诙x字段長(zhǎng)度、規(guī)劃數(shù)據(jù)存儲(chǔ)空間、網(wǎng)絡(luò)帶寬的時(shí)候,要充分考慮4字節(jié)帶來的影響,預(yù)留好足夠的空間。

實(shí)戰(zhàn)選擇

在實(shí)際開發(fā)中,選擇編碼要根據(jù)具體需求來定。如果你的網(wǎng)站或者應(yīng)用需要支持大量的特殊字符和Emoji,使用utf8mb4是個(gè)不錯(cuò)的選擇。如果主要是英文和普通中文文本,utf8足夠應(yīng)付。

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

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


責(zé)任編輯:武曉燕 來源: 螢火架構(gòu)
相關(guān)推薦

2024-05-29 13:05:44

2018-06-25 14:29:45

MySQLbug數(shù)據(jù)庫(kù)

2017-12-11 10:12:26

數(shù)據(jù)庫(kù)MySQL文本亂碼

2021-10-13 14:06:46

MySQLUtf8符號(hào)

2024-06-17 10:16:37

MySQLutf8mb4字節(jié)

2024-08-07 09:02:51

2022-05-18 08:25:59

MySQLutf8字符集數(shù)據(jù)庫(kù)

2023-01-03 18:32:32

2012-10-18 14:46:01

Windows RTWindows 8

2020-09-22 09:05:45

MySQLUTF-8utf8mb4

2016-09-12 16:19:38

MySQL存儲(chǔ)數(shù)據(jù)庫(kù)

2021-05-12 07:43:02

LinuxUnicodeUTF-8

2023-04-06 08:37:24

2021-07-20 08:23:49

HTTPWebSocketWeb

2023-12-15 09:21:17

ObjectJavaString

2025-05-13 01:10:00

數(shù)據(jù)產(chǎn)品開發(fā)

2024-03-27 18:22:58

Hadoop部件生態(tài)

2021-05-08 07:14:38

MySQL數(shù)據(jù)庫(kù)安全性

2022-05-25 11:39:12

數(shù)字化企業(yè)

2011-08-25 09:43:51

UTF-8中文man
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日本aaaa| 亚洲欧洲精品成人久久奇米网 | 亚洲精品1区 | 99久久婷婷国产精品综合 | 欧美国产一区二区 | 精品一级 | 欧美日韩国产精品激情在线播放 | 欧美啪啪网站 | 91黄色片免费看 | 色婷婷久久 | 免费的黄色片子 | www.日本精品 | 黄网免费看 | 婷婷激情综合 | 天天爽天天干 | 日韩精品免费一区二区在线观看 | 在线观看国产精品一区二区 | 人人草人人干 | 视频一区二区三区四区五区 | 日本在线精品视频 | 亚洲视频不卡 | 欧美性猛片aaaaaaa做受 | 麻豆国产一区二区三区四区 | 天堂av资源| 国产激情综合五月久久 | 中文字幕中文字幕 | 天天拍天天草 | 综合久久av | 99亚洲精品 | 精品国产欧美 | 精品亚洲视频在线 | 在线成人| 日本二区在线观看 | 午夜欧美一区二区三区在线播放 | 99reav| 国产99视频精品免费视频7 | 九九色综合| 天堂中文字幕av | 免费成人午夜 | 国产成人99久久亚洲综合精品 | 色五月激情五月 |