sql >> Database >  >> RDS >> Mysql

Het ultieme emoji-coderingsschema

MySQL's utf8 charset is niet echt UTF-8 , het is een subset van UTF-8 die alleen het basisvlak ondersteunt (tekens tot U+FFFF). De meeste emoji gebruiken codepunten die hoger zijn dan U+FFFF. MySQL's utf8mb4 is werkelijke UTF-8 die al die codepunten kan coderen. Buiten MySQL bestaat er niet zoiets als "utf8mb4", er is alleen UTF-8. Dus:

Nogmaals, er bestaat niet zoiets als "utf8mb4". HTTP POST-verzoeken ondersteunen alle onbewerkte bytes, als uw klant UTF-8-gecodeerde gegevens verzendt, zit u goed.

Ja.

God nee, gebruik onbewerkte UTF-8 (utf8mb4 ) voor alles wat heilig is.

Nou, daar is je probleem; het kanaliseren van uw gegevens via MySQL's utf8 charset verwijdert alle tekens boven U+FFFF. Gebruik utf8mb4 helemaal door MySQL.

U moet aangeven wat dat precies betekent. De JSON-functies van PHP zouden elk Unicode-codepunt prima moeten kunnen verwerken, zolang het maar geldige UTF-8 is:

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

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


  1. Oracle Concurrent Manager – CP Analyzer voor E-Business Suite

  2. geef het originele rijnummer van mySQL terug

  3. Namen weergeven van alle beperkingen voor een tabel in Oracle SQL

  4. Verander van SQLite naar PostgreSQL in een nieuw Rails-project