Puede especificar literales hexadecimales
(o incluso literales binarios
) usando 0x
, x''
, o X''
:
select 0xC2A2;
select x'C2A2';
select X'C2A2';
Pero ten cuidado que el tipo de retorno es una cadena binaria, por lo que todos y cada uno de los bytes se consideran un carácter. Puede verificar esto con char_length
:
select char_length(0xC2A2)
Si quieres UTF-8
cadenas en su lugar, debe usar convert
:
select convert(0xC2A2 using utf8mb4)
Y podemos ver que C2 A2
se considera 1 carácter en UTF-8:
select char_length(convert(0xC2A2 using utf8mb4))
Además, no tiene que preocuparse por los bytes no válidos porque convert
los eliminará automáticamente:
select char_length(convert(0xC1A2 using utf8mb4))
Como puede verse, la salida es 0
porque C1 A2
es una secuencia de bytes UTF-8 no válida.