Vous pouvez spécifier littéraux hexadécimaux
(ou même littéraux binaires
) en utilisant 0x , x'' , ou X'' :
select 0xC2A2;
select x'C2A2';
select X'C2A2';
Mais soyez conscient que le type de retour est une chaîne binaire, donc chaque octet est considéré comme un caractère. Vous pouvez le vérifier avec char_length :
select char_length(0xC2A2)
Si vous voulez UTF-8
à la place, vous devez utiliser convert
:
select convert(0xC2A2 using utf8mb4)
Et nous pouvons voir que C2 A2 est considéré comme 1 caractère en UTF-8 :
select char_length(convert(0xC2A2 using utf8mb4))
De plus, vous n'avez pas à vous soucier des octets invalides car convert les supprimera automatiquement :
select char_length(convert(0xC1A2 using utf8mb4))
Comme on peut le voir, la sortie est 0 car C1 A2 est une séquence d'octets UTF-8 non valide.