中的每个简单字符集都有一个配置文件sql /分享/数据集
目录中。用于命名为MYSYS
,文件命名为
.它使用MYSET
. xml< >地图
数组元素列出字符集属性。< >地图
元素出现在这些元素中:
< ctype >
定义每个字符的属性。< >低
而且<上>
列出小写和大写字符。unicode > <
将8位字符值映射为Unicode值。<排序>
元素表示比较和排序的字符顺序,每次排序一个元素。二进制排序不需要< >地图
元素,因为字符代码本身提供了排序。
中实现的复杂字符集ctype -
文件MYSET
.c字符串
目录中,有相应的数组:ctype_
,MYSET
[]to_lower_
等等。并不是每个复杂字符集都有所有的数组。请参见现有的MYSET
[]ctype - * . c
文件的例子。看到CHARSET_INFO.txt
文件字符串
目录以获取更多信息。
大多数数组按字符值进行索引,共有256个元素。的< ctype >
数组以字符值+ 1为索引,共有257个元素。这是一个用于处理的遗留约定EOF
.
< ctype >
数组元素是位值。每个元素描述字符集中单个字符的属性。中定义的每个属性都与位掩码相关联包括/ m_ctype.h
:
#define _MY_U 01 /*大写*/ #define _MY_L 02 /*小写*/ #define _MY_NMR 04 /*数字(数字)*/ #define _MY_SPC 010 /*间距字符*/ #define _MY_PNT 020 /*标点符号*/ #define _MY_CTR 040 /*控制字符*/ #define _MY_B 0100 /*空白*/ #define _MY_X 0200 /*十六进制数字*/
的< ctype >
给定字符的值应该是描述该字符的适用位掩码值的并集。例如,“一个”
是大写字符(_MY_U
)以及一个十六进制数字(_MY_X
),所以其ctype
Value应该这样定义:
ctype['A'+1] = _MY_U | _MY_X = 01 | 0200 = 0201
中的位掩码值m_ctype.h
是八进制值,但是< ctype >
数组中
应该写成十六进制值。MYSET
. xml
的< >低
而且<上>
数组保存对应于字符集每个成员的小写和大写字符。例如:
小写['A']应该包含'A'大写['A']应该包含'A'
每一个<排序>
数组指示为了进行比较和排序,字符应该如何排序。MySQL根据这些信息的值对字符进行排序。在某些情况下,这与<上>
数组,这意味着排序是不区分大小写的。有关更复杂的排序规则(对于复杂字符集),请参阅中关于字符串排序的讨论第10.13.2节,“对复杂字符集的字符串排序支持”.