Existem dois novos conjunto de caracteres para armazenar dados
Unicode: ucs2
(o conjunto de caracteres UCS-2
Unicode) e utf8
(a codificação UTF-8 do
conjunto de caracteres do Unicode).
Na UCS-2 (representação Unicode binária) todo caracter é representado por um código Unicode de dois bytes com o byte mais significante primeiro. Por exemplo: "LATIN CAPITAL LETTER A" tem o código 0x0041 e é armazenado como uma sequência de dois bytes: 0x00 0x41. "CYRILLIC SMALL LETTER YERU" (Unicode 0x044B) é armazenada como uma sequência de dois bytes: 0x04 0x4B. Para caracteres Unicode e seus código veja a Unicode Home Page.
Restrição temporária: UCS-2 não pode (ainda) ser usado
como um conjunto de caracteres de cliente. Insto significa que
SET NAMES ucs2
não funcionará.
O conjunto de caracteres UTF8 (representação Unicode trasnformada) é um modo alternativo de armazenar dados Unicode. Ele é implementado de acordo com a RFC2279. A idéia do conjunto de caracteres UTF8 é que vários caracteres Unicodes cobem em uma sequência de bytes de tamanhos diferentes.
Letras, digitos e sinais de pontuação do Latin básico usam um byte.
A maioria das letras script da Europa e Oriente Médio cabem em uma sequência de dois bytes: letras Latin extendidas (com til, agudo, grave e outros acentos), Cirílico, Grego, Armenio, Hebreu, Árabe, Sírio e outors.
Ideógrafos Coreanos, Chineses e Japoneses usam sequências de três bytes.
Atualmente, o suporte MySQL UTF8 não inclui sequências de quatro-bytes.
Dica: economize spaço com UTF8, use
VARCHAR
em vez de CHAR
.
Senão, o MySQL tem que reservar 30 bytes para uma coluna
CHAR(10) CHARACTER SET utf8
, pois este é o
tamanho máximo possível.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.