sql >> Databasteknik >  >> RDS >> Mysql

Unicode (hexadecimala) tecken i MySQL

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.



  1. Hur versionerar du ditt databasschema?

  2. Postgresql intarray fel:odefinierad symbol:pfree

  3. Hur man kontrollerar versionen av Oracle Provider för ole-db. OraOLEDB.Oracle-leverantör

  4. Finns det en funktion för att stänga en mysql-förberedd sats med PDO?