1. 程式人生 > >關於UTF-8、ASCII、Unicode、gbk、gb2312之間的關系的筆記

關於UTF-8、ASCII、Unicode、gbk、gb2312之間的關系的筆記

之間 class image 特殊字符 ade ner strong asc 清晰

一直對於字符編碼不是很清晰,只知道所有都sublime編輯文檔時候設置:文檔編碼為UTF-8、PHP的header也就是瀏覽器http響應頭顯示UTF-8、HTML的meta信息也聲明為UTF8、數據庫字符集選擇utf8、排序規則選擇utf-8_ general_ci,但是一直不知道他們是什麽來的,今天刷下百度百科:
有一篇寫的太好了:

https://www.zhihu.com/question/23374078

以上總結就是 ASCII => GB2312 => GBK => Unicode ,半角字符指的是ASCII的127個特殊字符。中文字符是兩個8位二進制數字代表的字符(所以兩個字節)

那麽unicode跟utf-8、utf -16、utf-32有什麽關系呢?

技術分享圖片

所以utf-8代表的unicode碼,對於ASCII就能表示的字符,內存是浪費的,因為有個字節是空的。utf比gbk是更加浪費內存的。

簡單來說,unicode,gbk和大五碼就是編碼的值,而utf-8,uft-16之類就是這個值的表現形式.

https://www.wenjiwu.com/doc/epqkni.html

為什麽所有網站更青睞於UTF-8呢?

技術分享圖片

utf-8更多字符、就已經完全壓下占內存多的劣勢了。

utf8mb4 -- UTF-8 Unicode

utf8mb4_general_ci

創建數據庫的時候這些mb4又是什麽意思呢?還有這些排序規則怎麽選擇呢!

關於UTF-8、ASCII、Unicode、gbk、gb2312之間的關系的筆記