Поиск
Поддержка Unicode
Начиная с версии MySQL 4.1, предусмотрено два новых символьных набора для хранения данных в кодировке Unicode:
- ucs2 - набор символов Unicode.
- utf 8 - кодировка UTF8 набора символов Unicode.
В UCS-2 (бинарном представлении Unicode) каждый символ представлен двухбайтовым Unicode-кодом, с самым старшим байтом в начале. Например, LATIN CAPITAL LETTER А имеет код 0x0041, и хранится как последовательность байтов 0x00 0x41. CYRILLIC SMALL LETTER YERU (Unicode 0x044B) хранится как двухбайтовая последовательность 0x04 0х4В. Информацию о символах Unicode и их кодах можно найти на домашней странице Unicode по адресу http://www.unicode.org.
Существует временное ограничение на использование UCS-2 в качестве клиентского символьного набора. Это значит, что SET NAMES 'ucs2' работать не будет.
Символьный набор UTF8 (трансформированное представление Unicode) - это альтернативный способ хранения данных в кодировке Unicode. Он реализован в соответствии с документом RPC2279. Идея символьного набора UTF8 состоит в том, что различные символы Unicode подгоняются к байтовым последовательностям различной длины.
- Основные латинские буквы, цифры и знаки пунктуации занимают один байт.
- Большинство букв европейских и средневосточных языков занимают два байта:
расширенные латинские, кириллические, греческие, армянские, сирийские, араб
ские, символы иврита и другие. - Корейские, китайские и японские иероглифы помещаются в трехбайтовые после
довательности .
В настоящее время поддержка MySQL набора UTF8 не включает четырехбайтовых по следовател ьностей.
МСовет
'Л
%\ Чтобы сэкономить место, применяя UTF8, используйте тип VARCHAR вместо CHAR. В противном
% случае MySQL резервирует 30 байт для столбца CHAR(10) CHARACTER SET utf8, поскольку это максимально возможная длина.