sql >> Database >  >> RDS >> Mysql

Unicode (hexadecimale) lettertekens in MySQL

U kunt hexadecimale letterlijke opgeven (of zelfs binaire letterlijke waarden ) met 0x , x'' , of X'' :

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

Maar let op dat het retourtype een binaire tekenreeks is, dus elke byte wordt als een teken beschouwd. Je kunt dit verifiëren met char_length :

select char_length(0xC2A2)

Als u UTF-8 wilt strings moet je in plaats daarvan convert :

select convert(0xC2A2 using utf8mb4)

En we kunnen zien dat C2 A2 wordt beschouwd als 1 teken in UTF-8:

select char_length(convert(0xC2A2 using utf8mb4))

U hoeft zich ook geen zorgen te maken over ongeldige bytes omdat convert zal ze automatisch verwijderen:

select char_length(convert(0xC1A2 using utf8mb4))

Zoals te zien is, is de output 0 omdat C1 A2 is een ongeldige UTF-8-bytereeks.



  1. SQLite - ORDER OP RAND()

  2. MySQL:Hoe rijen te kopiëren, maar een paar velden te wijzigen?

  3. Is het beter om meerdere databases met elk één schema te gebruiken, of één database met meerdere schema's?

  4. Aangepast SERIEEL / automatisch verhogen per groep waarden