您好,登錄后才能下訂單哦!
這篇文章主要介紹了mysql編碼格式有什么區別,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
1、字符集簡介
字符(Character)是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。
字符集(Character set)是多個字符的集合,字符集種類較多,每個字符集包含的字符個數不同,常見字符集名稱:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。計算機要準確的處理各種字符集文字,需要進行字符編碼,以便計算機能夠識別和存儲各種文字。
字符編碼(Character encoding)是把字符集中的某個字符編碼為指定字符集中字符,以便文本在計算機中存儲和通過通信網絡的傳遞。常見的例子包括將拉丁字母表編碼成ASCII,ASCII將字母、數字和其它符號編號,并用7比特的二進制來表示。
字符序(collation)是指同一個字符集內字符之間的比較規則。只有確定字符序后,才能在一個字符集上定義什么是等價的字符,以及字符之間的大小關系。一個字符可以包含多種字符序。MySQL字符序命名規則是:以字符序對應的字符集名稱開頭,以國家名居中(或以general居中),以ci、cs、或bin結尾。以ci結尾的字符序表示大小寫不敏感,以cs結尾的字符序表示大小寫敏感,以bin結尾的字符序表示按二進制編碼值比較。
2、ASCII編碼
ASCII既是編碼字符集,又是字符編碼,ASCII直接將字符在編碼字符集中的序號作為字符在計算機中存儲從數值。
例如:在ASCII中A字符在表中排第65位,序號是65,而編碼后A的數值是0100 0001,即十進制的65的二進制轉換結果。
3、Latin1字符集
Latin1字符集在ASCII字符集基礎上進行了擴展,仍然使用一個字節表示字符,但啟用了高位,擴展了字符集的表示范圍。
4、UTF-8編碼
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。由Ken Thompson于1992年創建。現在已經標準化為RFC 3629。UTF-8用1到6個字節編碼Unicode字符。
UTF-8是一種變長字節編碼方式。對于某一個字符的UTF-8編碼,如果只有一個字節則其最高二進制位為0;如果是多字節,其第一個字節從最高位開始,連續的二進制位值為1的個數決定了其編碼的位數,其余各字節均以10開頭。UTF-8最多可用到6個字節。 如表:
1字節 0xxxxxxx
2字節 110xxxxx 10xxxxxx
3字節 1110xxxx 10xxxxxx 10xxxxxx
4字節 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字節 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字節 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
因此UTF-8中可以用來表示字符編碼的實際位數最多有31位,即上表中x所表示的位。除去控制位(每字節開頭的10等),x表示的位與UNICODE編碼是一一對應的,位高低順序也相同。
實際將UNICODE轉換為UTF-8編碼時應先去除高位0,然后根據所剩編碼的位數決定所需最小的UTF-8編碼位數。 因此基本ASCII字符集中的字符(UNICODE兼容ASCII)只需要一個字節的UTF-8編碼(7個二進制位)便可以表示。
感謝你能夠認真閱讀完這篇文章,希望小編分享mysql編碼格式有什么區別內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。