Můžete zadat hexadecimální literály
(nebo dokonce binární literály
) pomocí 0x
, x''
, nebo X''
:
select 0xC2A2;
select x'C2A2';
select X'C2A2';
Ale pozor že návratový typ je binární řetězec, takže každý bajt je považován za znak. Můžete to ověřit pomocí char_length
:
select char_length(0xC2A2)
Pokud chcete UTF-8
strings, musíte místo toho použít convert
:
select convert(0xC2A2 using utf8mb4)
A můžeme vidět, že C2 A2
je považován za 1 znak v UTF-8:
select char_length(convert(0xC2A2 using utf8mb4))
Také se nemusíte starat o neplatné bajty, protože konvertovat
automaticky je odstraní:
select char_length(convert(0xC1A2 using utf8mb4))
Jak je vidět, výstup je 0
protože C1 A2
je neplatná bajtová sekvence UTF-8.