Maison > Java > javaDidacticiel > Que sont les paires de substitution dans le codage UTF-16 de Java ?

Que sont les paires de substitution dans le codage UTF-16 de Java ?

Linda Hamilton
Libérer: 2024-12-05 10:12:11
original
1021 Les gens l'ont consulté

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

Paires de substitution dans l'encodage UTF-16 de Java

Le concept de paires de substitution apparaît lorsque vous travaillez avec des caractères Unicode qui ont des points de code élevés au-delà du plage d'unités de code 16 bits utilisées dans l'encodage UTF-16.

Qu'est-ce que une paire de substitution ?

En UTF-16, une paire de substitution est une combinaison de deux unités de code qui représentent ensemble un seul point de code. Lorsqu'un caractère ne peut pas être codé dans une seule unité de code de 16 bits, il est représenté comme suit :

  • Une unité de code de substitution élevée est utilisée au début de la paire, avec une plage de U D800 à U DBFF.
  • Une unité de code de substitution faible suit le substitut élevé, avec une plage de U DC00 à U DFFF.

Le substitut haut indique la première moitié du point de code, tandis que le substitut bas indique la seconde moitié. Ensemble, ils forment un point de code de 32 bits.

Encodage et décodage

Le processus d'encodage d'un point de code au-delà de U FFFF dans une paire de substitution est le suivant :

Soustrayez 0x10000 du point de code pour obtenir la valeur de substitution élevée.
Shift la valeur de substitution élevée de 10 bits.
Ajoutez U D800 à la valeur de substitution élevée pour obtenir l'unité de code de substitution élevée.
Prenez les 10 bits restants du point de code pour obtenir la valeur de substitution faible.
Ajoutez U DC00 à la valeur de substitution faible pour obtenir l'unité de code de substitution faible.

Décodage d'un point de code à partir d'un substitut paire implique le processus inverse.

Exemple

Considérons le caractère Unicode U 10400, qui représente le caractère ?. Pour encoder ce caractère dans une paire de substitution :

Soustraire 0x10000 de U 10400 : 0x400
Décaler 0x400 vers la droite de 10 bits : 0x4
Ajouter U D800 à 0x4 : U D804 (unité de code de substitution élevée)
Ajouter U DC00 à 0x3C0 : U DC00 (unité de code de substitution faible)

Le caractère U 10400 est désormais représenté par la paire de substitution U D804 U DC00.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal