sql >> Databáze >  >> RDS >> Mysql

Unicode (hexadecimální) znakové literály v MySQL

Můžete zadat hexadecimální literály (nebo dokonce binární literály ) pomocí 0x , x'' , nebo X'' :

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

Ale pozor že návratový typ je binární řetězec, takže každý bajt je považován za znak. Můžete to ověřit pomocí char_length :

select char_length(0xC2A2)

Pokud chcete UTF-8 strings, musíte místo toho použít convert :

select convert(0xC2A2 using utf8mb4)

A můžeme vidět, že C2 A2 je považován za 1 znak v UTF-8:

select char_length(convert(0xC2A2 using utf8mb4))

Také se nemusíte starat o neplatné bajty, protože konvertovat automaticky je odstraní:

select char_length(convert(0xC1A2 using utf8mb4))

Jak je vidět, výstup je 0 protože C1 A2 je neplatná bajtová sekvence UTF-8.



  1. Jak vytvořit řadová čísla v PostgreSQL

  2. PHP &mySQL:Jednoduchý kód pro implementaci transakce – Commit &Rollback

  3. Najděte všechny nečíselné hodnoty ve sloupci v Oracle

  4. Oracle String Functions (úplný seznam)