U kunt hexadecimale letterlijke
opgeven (of zelfs binaire letterlijke waarden
) met 0x
, x''
, of X''
:
select 0xC2A2;
select x'C2A2';
select X'C2A2';
Maar let op dat het retourtype een binaire tekenreeks is, dus elke byte wordt als een teken beschouwd. Je kunt dit verifiëren met char_length
:
select char_length(0xC2A2)
Als u UTF-8
wilt strings moet je in plaats daarvan convert
:
select convert(0xC2A2 using utf8mb4)
En we kunnen zien dat C2 A2
wordt beschouwd als 1 teken in UTF-8:
select char_length(convert(0xC2A2 using utf8mb4))
U hoeft zich ook geen zorgen te maken over ongeldige bytes omdat convert
zal ze automatisch verwijderen:
select char_length(convert(0xC1A2 using utf8mb4))
Zoals te zien is, is de output 0
omdat C1 A2
is een ongeldige UTF-8-bytereeks.