Mysql
 sql >> Database >  >> RDS >> Mysql

Letterali di caratteri Unicode (esadecimali) in MySQL

Puoi specificare letterali esadecimali (o anche letterali binari ) utilizzando 0x , x'' o X'' :

select  0xC2A2;
select x'C2A2';
select X'C2A2';

Ma attenzione che il tipo restituito è una stringa binaria, quindi ogni byte è considerato un carattere. Puoi verificarlo con char_length :

select char_length(0xC2A2)

Se vuoi UTF-8 stringhe invece, devi usare convert :

select convert(0xC2A2 using utf8mb4)

E possiamo vedere che C2 A2 è considerato 1 carattere in UTF-8:

select char_length(convert(0xC2A2 using utf8mb4))

Inoltre, non devi preoccuparti dei byte non validi perché convert li rimuoverà automaticamente:

select char_length(convert(0xC1A2 using utf8mb4))

Come si può vedere, l'output è 0 perché C1 A2 è una sequenza di byte UTF-8 non valida.