Surrogate-Paare in der UTF-16-Codierung von Java
Das Konzept der Surrogate-Paare entsteht, wenn mit Unicode-Zeichen gearbeitet wird, die über hohe Codepunkte hinausgehen Bereich von 16-Bit-Codeeinheiten, die in UTF-16 verwendet werden Kodierung.
Was ist ein Ersatzpaar?
In UTF-16 ist ein Ersatzpaar eine Kombination aus zwei Codeeinheiten, die zusammen einen einzelnen Codepunkt darstellen. Wenn ein Zeichen nicht in einer einzelnen 16-Bit-Codeeinheit codiert werden kann, wird es wie folgt dargestellt:
Das hohe Ersatzzeichen gibt die erste Hälfte des Codepunkts an, während das niedrige Ersatzzeichen die zweite Hälfte angibt. Zusammen bilden sie einen 32-Bit-Codepunkt.
Kodierung und Dekodierung
Der Prozess der Kodierung eines Codepunkts jenseits von U FFFF in ein Ersatzpaar ist wie folgt:
Subtrahieren Sie 0x10000 vom Codepunkt, um den hohen Ersatzwert zu erhalten.
Verschiebung der hohe Ersatzwert um 10 Bit nach rechts.
Addieren Sie U D800 zum hohen Ersatzwert, um die hohe Ersatzcodeeinheit zu erhalten.
Nehmen Sie die restlichen 10 Bits des Codepunkts, um den niedrigen Ersatzwert zu erhalten.
Addieren Sie U DC00 zum unteren Ersatzwert, um den niedrigen Ersatzcode zu erhalten Einheit.
Das Dekodieren eines Codepunkts aus einem Ersatzpaar erfordert den umgekehrten Vorgang.
Beispiel
Betrachten Sie das Unicode-Zeichen U 10400, das das darstellt Charakter? So kodieren Sie dieses Zeichen in ein Ersatzzeichenpaar:
Subtrahieren Sie 0x10000 von U 10400: 0x400
Verschieben Sie 0x400 um 10 Bits nach rechts: 0x4
Addieren Sie U D800 zu 0x4: U D804 (hohe Ersatzcodeeinheit)
U hinzufügen DC00 bis 0x3C0: U DC00 (niedrige Ersatzcodeeinheit)
Das Zeichen U 10400 wird jetzt durch das Ersatzzeichenpaar U D804 U DC00 dargestellt.
Das obige ist der detaillierte Inhalt vonWas sind Ersatzpaare in der UTF-16-Kodierung von Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!