Du kan ange hexadecimala bokstaver
(eller till och med binära bokstaver
) med 0x
, x''
, eller X''
:
select 0xC2A2;
select x'C2A2';
select X'C2A2';
Men var medveten att returtypen är en binär sträng, så varje byte betraktas som ett tecken. Du kan verifiera detta med char_length
:
select char_length(0xC2A2)
Om du vill ha UTF-8
strängar istället måste du använda konvertera
:
select convert(0xC2A2 using utf8mb4)
Och vi kan se att C2 A2
anses vara 1 tecken i UTF-8:
select char_length(convert(0xC2A2 using utf8mb4))
Dessutom behöver du inte oroa dig för ogiltiga byte eftersom konvertera
kommer att ta bort dem automatiskt:
select char_length(convert(0xC1A2 using utf8mb4))
Som kan ses är utdata 0
eftersom C1 A2
är en ogiltig UTF-8-bytesekvens.