sql >> Databasteknik >  >> RDS >> Mysql

Det ultimata emoji-kodningsschemat

MySQL:s utf8 teckenuppsättningen är faktiskt inte UTF-8 , det är en delmängd av UTF-8 som endast stöder grundplanet (tecken upp till U+FFFF). De flesta emoji använder kodpunkter högre än U+FFFF. MySQL:s utf8mb4 är verklig UTF-8 som kan koda alla dessa kodpunkter. Utanför MySQL finns det inget som heter "utf8mb4", det finns bara UTF-8. Så:

Återigen, inget sådant som "utf8mb4". HTTP POST-förfrågningar stöder alla råbyte, om din klient skickar UTF-8-kodad data går det bra.

Ja.

Gud nej, använd rå UTF-8 (utf8mb4 ) för allt som är heligt.

Tja, där är ditt problem; kanalisera din data genom MySQL:s utf8 charset kommer att kassera alla tecken ovanför U+FFFF. Använd utf8mb4 hela vägen genom MySQL.

Du måste specificera exakt vad det betyder. PHP:s JSON-funktioner borde kunna hantera vilken Unicode-kodpunkt som helst, så länge den är giltig UTF-8:

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

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


  1. Så här fixar du dubbelkodade UTF8-tecken (i en utf-8-tabell)

  2. Installera RAC för en databas med datafiler

  3. hur man visar flera bilder (blob) från mysql med php?

  4. hur väljer jag AVG för flera kolumner på en enda rad