Можете да посочите шестнадесетични литерали
(или дори двоични литерали
) с помощта на 0x
, x''
или X''
:
select 0xC2A2;
select x'C2A2';
select X'C2A2';
Нобъдете наясно че връщаният тип е двоичен низ, така че всеки байт се счита за символ. Можете да потвърдите това с char_length
:
select char_length(0xC2A2)
Ако искате UTF-8
вместо низове, трябва да използвате convertкод>
:
select convert(0xC2A2 using utf8mb4)
И можем да видим, че C2 A2
се счита за 1 знак в UTF-8:
select char_length(convert(0xC2A2 using utf8mb4))
Освен това не е нужно да се притеснявате за невалидни байтове, защото конвертиране
ще ги премахне автоматично:
select char_length(convert(0xC1A2 using utf8mb4))
Както се вижда, изходът е 0
защото C1 A2
е невалидна UTF-8 байтова последователност.