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

Det ultimative emoji-kodningsskema

MySQL's utf8 tegnsæt er faktisk ikke UTF-8 , det er en delmængde af UTF-8, der kun understøtter grundplanet (tegn op til U+FFFF). De fleste emoji bruger kodepunkter højere end U+FFFF. MySQL's utf8mb4 er faktisk UTF-8 som kan kode alle disse kodepunkter. Uden for MySQL er der ikke noget som "utf8mb4", der er bare UTF-8. Så:

Igen, ikke noget som "utf8mb4". HTTP POST-anmodninger understøtter alle rå bytes, hvis din klient sender UTF-8-kodede data, har du det fint.

Ja.

Gud nej, brug rå UTF-8 (utf8mb4 ) for alt det hellige.

Nå, der er dit problem; kanalisering af dine data gennem MySQL's utf8 charset vil kassere alle tegn over U+FFFF. Brug utf8mb4 hele vejen gennem MySQL.

Du bliver nødt til at specificere, hvad det præcis betyder. PHP's JSON-funktioner burde være i stand til at håndtere ethvert Unicode-kodepunkt fint, så længe det er gyldigt UTF-8:

echo json_encode('😀');
"\ud83d\ude00"

echo json_decode('"\ud83d\ude00"');
😀


  1. Avanceret partitionsmatchning for partitionsmæssig joinforbindelse

  2. Hvordan indlæses en XML-fil i en database ved hjælp af en SSIS-pakke?

  3. Metoder til indstilling af NLS-parametre og deres prioriteter (Oracle-database)

  4. Trin til at synkronisere Standby med Primær Database i Oracle