PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Sind diese Zeichen für XML gültig?

tl; dr Nein, sie sind nicht gültig, was auch immer die Codierung getan hat, ist entweder fehlerhaft oder wurde falsche Codierungsinformationen über die Eingabe erzählt.

55357 und 56842 sind 0xd83d und 0xde0a in Hex.

In Unicode befinden sie sich in Bereichen, die als "hoher Ersatz" bzw. "niedrig surrogat" bezeichnet werden.

Das bedeutet, dass sie nicht sind Richtige Unicode-CodePoints, sondern in UTF-16 verwendet, um einen einzelnen Unicode-Wert zu konstruieren, der nicht in 16 Bit passt (d. H. Die grundlegende mehrsprachige Ebene).

Diese beiden spezifischen Werte dekodieren zu u+1f60a lächelndes Gesicht mit lächelnden Augen . Die korrekte Dezimal -HTML -Entität dafür wäre 😊 .

Der wahrscheinlichste Grund dafür ist, dass eine Transformation, die entweder nicht über UTF-16 oder thedes Bescheid wissen Dieser Text ist nicht UTF-16 hat die Codierung (hätte erkennen müssen, dass diese Werte ungültig sind und auch in diesem Fall einen Fehler gemeldet haben).