Spec-Zone .ru
спецификации, руководства, описания, API
|
Каждому простому набору символов определяли местоположение конфигурационного файла в sql/share/charsets
каталог. Для названного набора символов MYSYS
, файл называют
. Это использует MYSET
.xml<map>
элементы массива, чтобы перечислить свойства набора символов. <map>
элементы появляются в пределах этих элементов:
<ctype>
определяет атрибуты для каждого символа.
<lower>
и
<upper>
перечислите символы нижнего регистра и символы верхнего регистра.
<unicode>
отображает 8-разрядные символьные
значения на значения Unicode.
<collation>
элементы указывают на упорядочивание
символа для сравнений и видов, одного элемента на сопоставление. Двоичные сопоставления нуждаются нет
<map>
элемент, потому что символьные сами коды обеспечивают
упорядочивание.
Для сложного набора символов как реализовано в a ctype-
файл в MYSET
.cstrings
каталог, есть соответствующие массивы: ctype_
, MYSET
[]to_lower_
, и т.д. Не у каждого сложного набора символов есть
все массивы. См. также существующее MYSET
[]ctype-*.c
файлы для примеров. См. CHARSET_INFO.txt
файл в strings
каталог для
дополнительной информации.
Большинство массивов индексируется символьным значением и имеет 256 элементов. <ctype>
массив индексируется символьным значением + 1 и имеет 257 элементов. Это - соглашение наследства для того, чтобы
обработать EOF
.
<ctype>
элементы массива являются битовыми значениями. Каждый элемент
описывает атрибуты единственного символа в наборе символов. Каждый атрибут связывается с битовой маской, как
определено в include/m_ctype.h
:
#define _MY_U 01 /* Upper case */#define _MY_L 02 /* Lower case */#define _MY_NMR 04 /* Numeral (digit) */#define _MY_SPC 010 /* Spacing character */#define _MY_PNT 020 /* Punctuation */#define _MY_CTR 040 /* Control character */#define _MY_B 0100 /* Blank */#define _MY_X 0200 /* heXadecimal digit */
<ctype>
значение для данного символа должно быть объединением применимых
значений битовой маски, которые описывают символ. Например, 'A'
символ верхнего
регистра (_MY_U
) так же как шестнадцатеричная цифра (_MY_X
), таким образом, ctype
значение должно быть
определено как это:
ctype['A'+1] = _MY_U | _MY_X = 01 | 0200 = 0201
Битовая маска оценивает в m_ctype.h
восьмеричные значения, но элементы <ctype>
массив в
должен быть записан как шестнадцатеричные значения.
MYSET
.xml
<lower>
и <upper>
массивы содержат символы
нижнего регистра и символы верхнего регистра, соответствующие каждому элементу набора символов. Например:
lower['A'] should contain 'a'upper['a'] should contain 'A'
Каждый <collation>
массив указывает, как символы должны быть упорядочены в
целях сортировки и сравнении. Символы видов MySQL, основанные на значениях этой информации. В некоторых случаях
это - то же самое как <upper>
массив, что означает, что сортировка является
нечувствительной к регистру. Для более сложных правил сортировки (для сложных наборов символов), см. обсуждение
строкового сопоставления в Разделе
10.3.2, "Строковая Поддержка Сопоставления Сложных Наборов символов".