Spec-Zone .ru
спецификации, руководства, описания, API

10.1.10.4. utf32 Набор символов (Кодирование Unicode UTF-32)

utf32 набор символов является фиксированной длиной (как ucs2 и в отличие от этого utf16). utf32 использование 32 бита для каждого символа, в отличие от этого ucs2 (который использует 16 битов для каждого символа), и в отличие от этого utf16 (который использует 16 битов для некоторых символов и 32 бита для других).

utf32 занимает вдвое больше места как ucs2 и больше пространства чем utf16, но utf32 имеет то же самое преимущество как ucs2 то, что это предсказуемо для хранения: необходимое число байтов для utf32 равняется числу времен символов 4. Кроме того, в отличие от этого utf16, нет никаких приемов для того, чтобы закодировать в utf32, таким образом, хранимая сумма равняется кодовому обозначению.

Чтобы демонстрировать, как последнее преимущество полезно, вот, пример, который показывает, как определить a utf8mb4 оцените данный utf32 кодовое обозначение:

/* Assume code value = 100cc LINEAR B WHEELED CHARIOT */CREATE TABLE tmp (utf32_col CHAR(1) CHARACTER SET utf32,                  utf8mb4_col CHAR(1) CHARACTER SET utf8mb4);INSERT INTO tmp VALUES (0x000100cc,NULL);UPDATE tmp SET utf8mb4_col = utf32_col;SELECT HEX(utf32_col),HEX(utf8mb4_col) FROM tmp;

MySQL является очень прощающим о добавлениях неприсвоенных символов Unicode или символов области личного пользования. Есть фактически только одна проверка достоверности для utf32: Никакое кодовое обозначение не может быть больше чем 0x10ffff. Например, это недопустимо:

INSERT INTO t (utf32_column) VALUES (0x110000); /* illegal */