在 MySQL 中,gb18030
字元集對應於中國國家標準 GB 18030-2005:資訊技術 - 中文編碼字元集,這是中華人民共和國(PRC)的官方字元集。
MySQL gb18030 字元集的特性
支援 GB 18030-2005 標準定義的所有程式碼點。範圍 (GB+8431A439, GB+90308130) 和 (GB+E3329A36, GB+EF39EF39) 中未指派的程式碼點會被視為 '
?
' (0x3F)。轉換未指派的程式碼點會傳回 '?
'。支援所有 GB18030 程式碼點的 UPPER 和 LOWER 轉換。也支援 Unicode 定義的大小寫折疊 (基於
CaseFolding-6.3.0.txt
)。支援與其他字元集之間來回轉換資料。
支援 SQL 陳述式,例如
SET NAMES
。支援
gb18030
字串之間的比較,以及gb18030
字串與其他字元集的字串之間的比較。如果字串具有不同的字元集,則會進行轉換。也支援包含或忽略尾隨空格的比較。Unicode 中的私用區域 (U+E000, U+F8FF) 對應於
gb18030
。(U+D800, U+DFFF) 與 GB18030 之間沒有對應關係。嘗試轉換此範圍內的程式碼點會傳回 '
?
'。如果傳入的序列不合法,則會傳回錯誤或警告。如果在
CONVERT()
中使用不合法的序列,則會傳回錯誤。否則,會傳回警告。為了與
utf8mb3
和utf8mb4
一致,連字不支援 UPPER。使用
gb18030_unicode_520_ci
排序規則時,搜尋連字也會比對大寫連字。如果某個字元有多個大寫字元,則選擇的大寫字元是其小寫字母是字元本身的大寫字母。
最小多位元組長度為 1,最大為 4。字元集使用前 1 或 2 個位元組來判斷序列的長度。
支援的排序規則
gb18030_bin
:二進位排序規則。gb18030_chinese_ci
:預設排序規則,支援拼音。非中文字元的排序是根據原始排序索引鍵的順序。如果UPPER(ch)
存在,則原始排序索引鍵為GB(UPPER(ch))
。否則,原始排序索引鍵為GB(ch)
。中文字元會根據 Unicode 通用地區設定資料儲存庫 (CLDR 24) 中定義的拼音排序規則進行排序。非中文字元會在中文字元之前排序,但GB+FE39FE39
除外,這是程式碼點的最大值。gb18030_unicode_520_ci
:Unicode 排序規則。如果您需要確保連字正確排序,請使用此排序規則。