Heim >Java >javaLernprogramm >Was sind Ersatzpaare in der UTF-16-Kodierung von Java?

Was sind Ersatzpaare in der UTF-16-Kodierung von Java?

Linda Hamilton
Linda HamiltonOriginal
2024-12-05 10:12:111022Durchsuche

What are Surrogate Pairs in Java's UTF-16 Encoding?

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:

  • Am Anfang des Paares wird eine hohe Ersatzcodeeinheit mit einem Bereich von U D800 verwendet bis U DBFF.
  • Eine niedrige Ersatzcodeeinheit folgt dem hohen Ersatzcode mit einem Bereich von U DC00 bis U DFFF.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn