utf8或者utf-8是大家常見的一個詞匯,它是一種信息的編碼格式,特別是不同開發平臺的系統進行對接的時候,編碼一定要對齊,否則就容易出現亂碼。
先說說什么是編碼。編碼就像我們日常生活中的語言,不同的地方說不同的話,編碼就是計算機用來表示這些“話”的一種方式。比如我們使用漢字來說話,計算機用二進制數來表示這些漢字的方式,就是編碼。
utf8就是這樣一種編碼格式,正式點要使用:UTF-8,utf8是一個簡寫形式。
在計算機早期,主要使用ASCII編碼,只能表示128個字符,漢字完全表示不了。后來,才出現了各種各樣的編碼方式,比如GB2312、GBK、BIG5,但這些編碼只能在特定的環境下使用,不能全球通用。
UTF-8就像一個萬能翻譯官,它的全稱是“Unicode Transformation Format - 8 bit”,注意這里不是說UTF-8只能使用8bit來表示一個字符,實際上UTF-8能表示世界上幾乎所有的字符。
它的特點是:
UTF-8適用于網頁、文件系統、數據庫等需要全球化支持的場景。
經常接觸代碼的同學應該還經常能看到 Unicode 這個詞,它和編碼也有很大的關系,其實Unicode是一個字符集標準,utf8只是它的一種實現方式。Unicode 作為一種字符集標準,為全球各種語言和符號定義了唯一的數字碼位(code points)。其它的Unicode實現方式還有UTF-16和UTF-32:

utf8mb4并不常見,它是UTF-8的一個擴展版本,專門用于MySQL數據庫。MySQL在 5.5.3 之后增加了一個utf8mb4的編碼,mb4就是最多4個字節的意思(most bytes 4),它主要解決了UTF-8不能表示一些特殊字符的問題,比如Emoji表情,這在論壇或者留言板中也經常用到。大家使用小紅書時應該見過各種各樣的表情符號,小紅書后臺也可能使用utf8mb4保存它們。
編碼規則和特點:
存儲空間
性能影響
不過因為實際場景中使用的utf8mb4的字符也不多,其實對存儲空間和性能的影響很小,大家基本沒有必要因為多占用了一些空間和流量,而不是用utf8mb4。
只是我們在定義字段長度、規劃數據存儲空間、網絡帶寬的時候,要充分考慮4字節帶來的影響,預留好足夠的空間。
在實際開發中,選擇編碼要根據具體需求來定。如果你的網站或者應用需要支持大量的特殊字符和Emoji,使用utf8mb4是個不錯的選擇。如果主要是英文和普通中文文本,utf8足夠應付。
注意為了避免亂碼問題,前端、后端、數據庫都應該使用同一種編碼,比如utf8,具體到編碼時就是要確保數據庫連接、網頁頭部、文件讀寫都設置為相同的編碼。
另外還需要注意Windows和Linux系統中使用UTF-8編碼的文件可能是有差別的,Windows中的UTF-8文件可能會攜帶一個BOM頭,方便系統進行識別,但是Linux中不需要這個頭,所以如果要跨系統使用這個文件,特別是程序腳本,可能需要在Linux中去掉這個頭。
本文鏈接:http://m.www897cc.com/showinfo-26-92160-0.html一篇講明白Utf8和Utf8mb4有什么區別
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com