Поиск

Поддержка Unicode

Начиная с версии MySQL 4.1, предусмотрено два новых символьных набора для хра­нения данных в кодировке Unicode:

  1. ucs2 - набор символов Unicode.
  2. 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 подгоняются к байтовым последовательностям различной длины.

  1. Основные латинские буквы, цифры и знаки пунктуации занимают один байт.
  2. Большинство букв европейских и средневосточных языков занимают два байта:
    расширенные латинские, кириллические, греческие, армянские, сирийские, араб­
    ские, символы иврита и другие.
  3. Корейские, китайские и японские иероглифы помещаются в трехбайтовые после­
    довательности .

В настоящее время поддержка MySQL набора UTF8 не включает четырехбайтовых по следовател ьностей.
МСовет

%\ Чтобы сэкономить место, применяя UTF8, используйте тип VARCHAR вместо CHAR. В противном
% случае MySQL резервирует 30 байт для столбца CHAR(10) CHARACTER SET utf8, поскольку это максимально возможная длина.