Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Literais de caracteres Unicode (hexadecimais) no MySQL


Você pode especificar literais hexadecimais (ou mesmo literais binários ) usando 0x , x'' , ou X'' :
select  0xC2A2;
select x'C2A2';
select X'C2A2';

Mas esteja ciente que o tipo de retorno é uma string binária, então cada byte é considerado um caractere. Você pode verificar isso com char_length :
select char_length(0xC2A2)

Se você quiser UTF-8 strings, você precisa usar convert :
select convert(0xC2A2 using utf8mb4)

E podemos ver que C2 A2 é considerado 1 caractere em UTF-8:
select char_length(convert(0xC2A2 using utf8mb4))

Além disso, você não precisa se preocupar com bytes inválidos porque converter irá removê-los automaticamente:
select char_length(convert(0xC1A2 using utf8mb4))

Como pode ser visto, a saída é 0 porque C1 A2 é uma sequência de bytes UTF-8 inválida.