sql >> Database >  >> RDS >> PostgreSQL

Zijn deze tekens geldig voor XML?

tl;dr Nee, ze zijn niet geldig, wat de codering ook is, het is foutief of er is verkeerde coderingsinformatie over de invoer verteld.

55357 en 56842 zijn respectievelijk 0xD83D en 0xDE0A in hex.

In Unicode bevinden ze zich in bereiken die respectievelijk "High Surrogate" en "Low Surrogate" worden genoemd.

Dat betekent dat ze niet . zijn juiste Unicode-codepunten, maar eerder gebruikt in UTF-16 om een ​​enkele Unicode-waarde te construeren die niet in 16 bit past (d.w.z. het Basic Multilingual Plane).

Deze twee specifieke waarden worden gedecodeerd tot U+1F60A GLIMLACHEND GEZICHT MET GLIMLACHENDE OGEN . De juiste decimale HTML-entiteit daarvoor is 😊 .

De meest waarschijnlijke reden hiervoor is dat een transformatie die ofwel niets weet over UTF-16 of dacht deze tekst is geen UTF-16 die de codering heeft uitgevoerd (maar had moeten detecteren dat die waarden ongeldig zijn en zelfs in dat geval een fout melden).




  1. zf2 tablegateway selecteer kolommen op kolomnaam

  2. Queryresultaten filteren in PostgreSQL

  3. Sails.js gebruiken met een bestaande postgres-database

  4. Oracle View Creation met een door een database gegenereerde ID van een Sequence Object