Алексей Паутов - MySQL: руководство профессионала
| cp1256 | Windows Arabic | cp1256_general_ci |
| cp1257 | Windows Baltic | cp1257_general_ci |
| binary | Binary pseudo charset | binary |
| geostd8 | GEOSTD8 Georgian | geostd8_general_ci |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |
+----------+-----------------------------+---------------------+
10.10.1. Наборы символов Unicode
MySQL имеет два набора символов Unicode. Вы можете сохранять текст приблизительно для 650 языков, используя эти наборы символов.
Объединения ucs2 (UCS-2 Unicode):
ucs2_bin
ucs2_czech_ci
ucs2_danish_ci
ucs2_esperanto_ci
ucs2_estonian_ci
ucs2_general_ci (default)
ucs2_hungarian_ci
ucs2_icelandic_ci
ucs2_latvian_ci
ucs2_lithuanian_ci
ucs2_persian_ci
ucs2_polish_ci
ucs2_roman_ci
ucs2_romanian_ci
ucs2_slovak_ci
ucs2_slovenian_ci
ucs2_spanish2_ci
ucs2_spanish_ci
ucs2_swedish_ci
ucs2_turkish_ci
ucs2_unicode_ci
Объединения utf8 (UTF-8 Unicode):
utf8_bin
utf8_czech_ci
utf8_danish_ci
utf8_esperanto_ci
utf8_estonian_ci
utf8_general_ci (default)
utf8_hungarian_ci
utf8_icelandic_ci
utf8_latvian_ci
utf8_lithuanian_ci
utf8_persian_ci
utf8_polish_ci
utf8_roman_ci
utf8_romanian_ci
utf8_slovak_ci
utf8_slovenian_ci
utf8_spanish2_ci
utf8_spanish_ci
utf8_swedish_ci
utf8_turkish_ci
utf8_unicode_ci
Обратите внимание, что в объединениях ucs2_roman_ci и utf8_roman_ci I и J считаются эквивалентными, равно как и пара U и V.
Объединения ucs2_hungarian_ci и utf8_hungarian_ci были добавлены в MySQL 5.1.5.
MySQL осуществляет объединение utf8_unicode_ci согласно Unicode Collation Algorithm (UCA), описанному на http://www.unicode.org/reports/tr10/. Объединение использует version-4.0.0 UCA weight keys: http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt. Следующее обсуждение использует utf8_unicode_ci, но это также верно и для ucs2_unicode_ci.
В настоящее время объединение utf8_unicode_ci имеет только частичную поддержку для Unicode Collation Algorithm. Некоторые символы все же не обеспечиваются. Также полностью не обеспечивается объединение меток. Это воздействует прежде всего на вьетнамский и некоторые малораспространенные языки в России, типа Udmurt, Tatar, Bashkir и Mari.
Старшее свойство в utf8_unicode_ci: это поддерживает расширения, то есть когда один символ сравнивается как равный комбинациям других символов. Например, в немецком и некоторых других языках ├Я равен ss.
utf8_general_ci объединение, которое не поддерживает расширения. Это может делать только взаимно-однозначные сравнения между символами. Это означает, что сравнения для объединения utf8_general_ci быстрее, но немного менее правильные, чем сравнения для utf8_unicode_ci.
Например, следующие равенства верны в utf8_general_ci и в utf8_unicode_ci:
├Д = A
├Ц = O
├Ь = U
Различие между объединениями: это является истинным для utf8_general_ci:
├Я = s
В то время, как это истинно для utf8_unicode_ci:
├Я = ss
MySQL осуществляет специфические для языка объединения для набора символов utf8 только, если упорядочение с utf8_unicode_ci не работает хорошо для языка. Например, utf8_unicode_ci работает прекрасно для German и French, а значит нет никакой потребности создавать специальные объединения utf8 для этих двух языков.
utf8_general_ci также удовлетворителен для German и French за исключением того, что ├Я равно s, но ss. Если это приемлемо для вашей прикладной программы, то применяйте utf8_general_ci, потому что это быстрее. Иначе, используйте utf8_unicode_ci, потому что это более точно.
utf8_swedish_ci, подобно другим специфическим для языка объединениям utf8, получен из utf8_unicode_ci с дополнительными правилами языка. Например, в Swedish следующие связи хранения, которые неприменимы для German или French:
├Ь = Y < ├Ц
Объединения utf8_spanish_ci и utf8_spanish2_ci соответствуют современному и традиционному испанскому, соответственно. В обоих объединениях ├▒ (n-tilde) отдельный символ между n и o. Кроме того, для традиионного испанского ch отдельный символ между c и d, а ll отдельный символ между l и m
10.10.2. Западноевропейские наборы символов
Западноевропейские наборы символов покрывают большинство западноевропейских языков, типа French, Spanish, Catalan, Basque, Portuguese, Italian, Albanian, Dutch, German, Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish, Scottish и English.
Объединения ascii (US ASCII):
ascii_bin
ascii_general_ci (значение по умолчанию)
Объединения cp850 (DOS West European):
cp850_bin
cp850_general_ci (значение по умолчанию)
Объединения dec8 (DEC Western European):
dec8_bin
dec8_swedish_ci (значение по умолчанию)
Объединения hp8 (HP Western European):
hp8_bin
hp8_english_ci (значение по умолчанию)
Объединения latin1 (cp1252 West European):
latin1_bin
latin1_danish_ci
latin1_general_ci
latin1_general_cs
latin1_german1_ci
latin1_german2_ci
latin1_spanish_ci
latin1_swedish_ci (значение по умолчанию)
latin1 заданный по умолчанию набор символов. MySQL latin1 представляет собой тот же набор символов, что и Windows cp1252. Это означает, что это официальный ISO 8859-1 или IANA (Internet Assigned Numbers Authority) latin1, но IANA latin1 обрабатывает точки между 0x80 и 0x9f как неопределенные в то время, как cp1252 и, следовательно, MySQL latin1 назначают символы для тех позиций. Например, 0x80 знак Euro. Для неопределенных записей в cp1252 MySQL транслирует 0x81 в Unicode 0x0081, 0x8d в 0x008d, 0x8f в 0x008f, 0x90 в 0x0090 и 0x9d в 0x009d.
Объединение latin1_swedish_ci это значение по умолчанию, которое, вероятно, используется большинством заказчиков MySQL. Хотя часто скажется, что это основано на правилах объединения Swedish/Finnish, имеются шведы и финны, кто не соглашаются с этой инструкцией.
Объединения основаны на latin1_german1_ci и latin1_german2_ci на стандартах DIN-1 и DIN-2, где DIN замещает Deutsches Institut f├╝r Normung (немецкий эквивалент ANSI, в общем). DIN-1 называется словарным объединением, а DIN-2 называется объединением телефонного справочника.
Правила latin1_german1_ci (словарного):
├Д = A
├Ц = O
├Ь = U
├Я = s
Правила latin1_german2_ci (телефонного справочника):
├Д = AE
├Ц = OE
├Ь = UE
├Я = ss
В объединении latin1_spanish_ci ├▒ (n-tilde) отдельный символ между letter between n и o.
Объединения macroman (Mac West European):
macroman_bin
macroman_general_ci (значение по умолчанию)
Объединения swe7 (7bit Swedish):
swe7_bin
swe7_swedish_ci (значение по умолчанию)
10.10.3. Центральноевропейские наборы символов
MySQL обеспечивает поддержку для наборов символов, используемых в Czech Republic, Slovakia, Hungary, Romania, Slovenia, Croatia и Poland.
Объединения cp1250 (Windows Central European):
cp1250_bin
cp1250_croatian_ci
cp1250_czech_cs
cp1250_general_ci (значение по умолчанию)
cp1250_polish_ci
Объединения cp852 (DOS Central European):
cp852_bin
cp852_general_ci (значение по умолчанию)
Объединения keybcs2 (DOS Kamenicky Czech-Slovak):
keybcs2_bin
keybcs2_general_ci (значение по умолчанию)
Объединения latin2 (ISO 8859-2 Central European):
latin2_bin
latin2_croatian_ci
latin2_czech_cs
latin2_general_ci (значение по умолчанию)
latin2_hungarian_ci
Объединения macce (Mac Central European):
macce_bin
macce_general_ci (значение по умолчанию)
10.10.4. Южноевропейские и ближневосточные наборы символов
Южныоевропейские и ближневосточные наборы символов, обеспечиваемые MySQL, включают Armenian, Arabic, Georgian, Greek, Hebrew и Turkish.
Объединения armscii8 (ARMSCII-8 Armenian):
armscii8_bin
armscii8_general_ci (значение по умолчанию)
Объединения cp1256 (Windows Arabic):
cp1256_bin
cp1256_general_ci (значение по умолчанию)
Объединения geostd8 (GEOSTD8 Georgian):
geostd8_bin
geostd8_general_ci (значение по умолчанию)
Объединения greek (ISO 8859-7 Greek):
greek_bin
greek_general_ci (значение по умолчанию)
Объединения hebrew (ISO 8859-8 Hebrew):
hebrew_bin
hebrew_general_ci (значение по умолчанию)
Объединения latin5 (ISO 8859-9 Turkish):
latin5_bin
latin5_turkish_ci (значение по умолчанию)
10.10.5. Балтийские наборы символов
Балтийские наборы символов охватывают Estonian, Latvian и Lithuanian.
Объединения cp1257 (Windows Baltic):
cp1257_bin
cp1257_general_ci (значение по умолчанию)
cp1257_lithuanian_ci
Объединения latin7 (ISO 8859-13 Baltic):
latin7_bin
latin7_estonian_cs
latin7_general_ci (значение по умолчанию)
latin7_general_cs
10.10.6. Наборы символов кириллицы
Наборы символов и объединения кириллицы для использования с Belarusian, Bulgarian, Russian и Ukrainian.
Объединения cp1251 (Windows Cyrillic):
cp1251_bin
cp1251_bulgarian_ci
cp1251_general_ci (значение по умолчанию)
cp1251_general_cs
cp1251_ukrainian_ci
Объединения cp866 (DOS Russian):
cp866_bin
cp866_general_ci (значение по умолчанию)
Объединения koi8r (KOI8-R Relcom Russian):
koi8r_bin
koi8r_general_ci (значение по умолчанию)
Объединения koi8u (KOI8-U Ukrainian):