當前位置:成語大全網 - 成語詞典 - 數據庫編碼格式(查看數據庫編碼格式)

數據庫編碼格式(查看數據庫編碼格式)

1.ASCII

用途:用來映射簡單的單字節字符,比如大小寫英文字母、阿拉伯數字、常用的標點符、運算符、控制字符等。

編碼範圍:U0000-U007F

註意:對於用這類字符的場景夠用了,但是卻無法表達比如漢字,日文等編碼。

2.UNICODE

用途:用來映射包含ASCII以內的其他的所有字符。

編碼範圍:U0000-U10FFFF

註意:ASCII是UNICODE的子集,ASCII編碼的字符可以無損轉換為UNICODE編碼的字符。

MySQL常用字符集

1.Latin1

Latin1是cp1252或者ISO-8859-1的別名。ISO-8859-1編碼是單字節編碼,向下兼容ASCII。

編碼範圍:U0000-U00FF

ISO-8859-1收錄的字符除ASCII收錄的字符外,還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字符號。

單字節內的空間都被ISO-8859-1編碼占用,所以能夠用ISO-8859-1編碼存儲、傳輸其他任何編碼的字節流。

比如把壹個Utf8mb4的編碼或者GBK的編碼存入Latin1,不會有任何問題。因為Latin1保留了原始的字節流,這也就是MySQL長期以來把Latin1做默認字符集的原因。

但是由於Latin1對任何字符都存放字節流,造成了字符個數的浪費。

比如:

CHAR(10)CHARACTERSETLATIN1;CHAR(10)CHARACTERSETUTF8;

該字段中存儲字符個數UTF8是Latin1的三倍!!!

2.GB18030

GB18030是中國官方標準字符集,向前兼容GBK、GB2312,是這兩個的超集。用1、2、4個字節分別表示壹個符號。比如對壹般中文字符,默認是用兩個字節編碼存儲。Windows系統,默認用的就是GB18030。

若只是存儲中文字符,那GB18030最佳。

原因有兩點:

1)占用空間小,比如比UTF8小。

2)存儲的漢字根據拼音來排序,檢索快。

3.UTF8

UTF8是Unicode的編碼實現,可以存儲UNICODE編碼對應的任何字符,這也是使用最多的壹種編碼。最大的特點就是變長的編碼方式,用1到4個字節表示壹個符號,可以根據不同的符號編碼字節長度。

字母或數字用1字節,漢字用3字節,emoji表情符號用4字節。UTF8字符集目前是使用最廣泛的。

註意!MySQL裏常說的UTF8是UTF8MB3的別名,UTF8MB3是UTF8MB4的子集,UTF8MB4才是真正的4字節UTF8字符集!

UTF8MB3表示最大支持3個字節存儲字符,UTF8MB4表示最大4個字節存儲字符。根據實際需要和未來展望,MySQL8.0已經默認用UTF8MB4基礎字符集。