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.