啥叫字符集
計算機只認識0和1
那字串“abc”咋顯示呢? 有個類似於字典的東西,告訴計算機在此種情況(在此編碼格式)下,某些數字該顯示什麼。
這種字典,就是字符集
現有的字符集
目前主要有以下幾種字符集:
- ASCII字符集
- ISO 8859-1字符集
- GB2312字符集
- GBK字符集
- Unicode編碼
ASCII字符集
共收錄128個字元,都是些最最基礎的字元。詳情請看百度百科
大小:佔一個位元組
ISO 8859-1字符集(別名latin1)
ASCII字符集的擴充。共收錄256個字元。ASCII字符集基礎上擴充了128個西歐常用字元(包括德法兩國的字母)
大小:佔一個位元組
GB2312字符集
劃重點:made in china。 百度百科~曰:”共收錄6763個漢字,其中一級漢字3755個,二級漢字3008個;同時,GB 2312收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西裡爾字母在內的682個全形字元。“詳情請看百度百科
相容ASCII字符集。
大小:如果該字元在ASCII字符集中,則採用1位元組編碼。否則採用2位元組編碼。
GBK字符集
劃重點:made in china。
繼GB2312字符集
之後中國又出的一套標準。這套更牛逼:不僅完全相容GB2312字符集。還擴充了很多:
”共23940個碼位,共收錄了21003個漢字...全部中日韓漢字...“ 總之一個字:牛逼!
大小:如果該字元在ASCII字符集中,則採用1位元組編碼。否則採用2位元組編碼。
Unicode編碼。
牛逼的玩意兒來了。先看看它的中文譯名:統一碼、萬國碼、單一碼。 收錄地球上的所有字元,現在還在不斷擴充。 但是,需要注意的是,Unicode只是一個符號集,它只規定了符號的二進位制程式碼,卻沒有規定這個二進位制程式碼應該如何儲存。
其中,Unicode編碼規定的符號程式碼必須以”U+”做字首。
編號怎麼對應到二進位制表示呢?有多種方案:主要有 UTF-8,UTF-16,UTF-32。
- UTF-32字符集。將unicode編碼的碼號直接轉成對應的二進位制數。大小:4個位元組。
- UTF-16字符集。使用變長位元組表示。大小:對於編號在 U+0000 到 U+FFFF 的字元(常用字符集),直接用兩個位元組表示,其餘的用4個位元組
- UTF-8字符集。使用變長位元組表示。相容ASCII字符集。大小:1~4個位元組
字符集之間的關係
參考文獻:
- 掘金小冊《MySQL 是怎樣執行的:從根兒上理解 MySQL》
- blog.csdn.net/zhusongziye…
- www.cnblogs.com/kingstarspe…