首頁  >  文章  >  資料庫  >  mysql中不同的編碼格式有什麼區別

mysql中不同的編碼格式有什麼區別

(*-*)浩
(*-*)浩原創
2019-05-08 10:39:254413瀏覽

mysql中不同的編碼格式之間的區別是:ASCII編碼直接將字元在編碼字元集中的序號作為字元在電腦中儲存從數值;Latin1編碼,它是ASCII編碼的擴展;UTF- 8編碼是一種針對Unicode的可變長度字元編碼。

mysql中不同的編碼格式有什麼區別

本篇文章將對mysql的一些編碼進行解說與介紹,不過這並不是所有的字元集編碼。

推薦課程:mysql影片教學

1、字元集簡介

字元(Character)是各種文字和符號的總稱,包括各國文字、標點符號、圖形符號、數字等。

字元集(Character set)是多個字元的集合,字元集種類較多,每個字元集包含的字元個數不同,常見字元集名稱:ASCII字元集、GB2312字元集、BIG5字元集、 GB18030字元集、Unicode字元集等。電腦要準確的處理各種字元集文字,需要進行字元編碼,以便電腦能夠辨識和儲存各種文字。

字符編碼(Character encoding)是把字符集中的某個字符編碼為指定字符集中字符,以便文本在計算機中存儲和通過通信網絡的傳遞。常見的例子包括將拉丁字母編碼成ASCII,ASCII將字母、數字和其它符號編號,並用7位元的二進位來表示。
字元序(collat​​ion)是指同一個字元集內字元之間的比較規則。只有在確定字符序後,才能在一個字符集上定義什麼是等價的字符,以及字符之間的大小關係。一個字元可以包含多種字元序。 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 10xxx 
4位元組11110xxx 10xxxxxxxxx 10xxx # #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中不同的編碼格式有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn