Nouveau

Explication du codage de caractères Unicode

Explication du codage de caractères Unicode



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Pour qu'un ordinateur puisse stocker du texte et des nombres compréhensibles par l'homme, il doit exister un code transformant les caractères en chiffres. La norme Unicode définit un tel code en utilisant le codage de caractères.

La raison pour laquelle le codage des caractères est si important est que chaque appareil peut afficher les mêmes informations. Un schéma de codage de caractères personnalisé peut fonctionner à merveille sur un ordinateur, mais des problèmes peuvent survenir lorsque vous envoyez ce même texte à quelqu'un d'autre. Il ne saura pas de quoi vous parlez s'il ne comprend pas aussi le schéma de codage.

Encodage de caractère

Tout le codage de caractères consiste à attribuer un numéro à chaque caractère pouvant être utilisé. Vous pouvez créer un encodage de caractères maintenant.

Par exemple, je pourrais dire que la lettre UNE devient le nombre 13, a = 14, 1 = 33, # = 123, etc.

C’est là que les standards de l’industrie entrent en vigueur. Si l’ensemble du secteur informatique utilise le même schéma de codage de caractères, chaque ordinateur peut afficher les mêmes caractères.

Qu'est-ce que Unicode?

ASCII (Code américain normalisé pour l'échange d'informations) est devenu le premier système de codage généralisé. Cependant, il est limité à seulement 128 définitions de caractères. Cela convient aux caractères anglais les plus courants, aux chiffres et à la ponctuation, mais est un peu limitatif pour le reste du monde.

Naturellement, le reste du monde souhaite également le même schéma de codage pour ses caractères. Cependant, pendant un certain temps, bien que cela dépend de votre position, un caractère différent aurait pu être affiché pour le même code ASCII.

À la fin, les autres régions du monde ont commencé à créer leurs propres schémas de codage, et la situation a commencé à devenir un peu déroutante. Non seulement les schémas de codage étaient de longueurs différentes, mais il fallait aussi que les programmes déterminent le schéma de codage qu'ils étaient censés utiliser.

Il est devenu évident qu'un nouveau schéma de codage de caractères était nécessaire, date de la création du standard Unicode. L'objectif d'Unicode est d'unifier tous les différents schémas de codage afin de limiter autant que possible la confusion entre ordinateurs.

De nos jours, la norme Unicode définit des valeurs pour plus de 128 000 caractères et peut être consultée dans le consortium Unicode. Il a plusieurs formes de codage de caractères:

  • UTF-8: Utilise un seul octet (8 bits) pour coder les caractères anglais. Il peut utiliser une séquence d'octets pour coder d'autres caractères. UTF-8 est largement utilisé dans les systèmes de messagerie et sur Internet.
  • UTF-16: Utilise deux octets (16 bits) pour coder les caractères les plus couramment utilisés. Si nécessaire, les caractères supplémentaires peuvent être représentés par une paire de nombres à 16 bits.
  • UTF-32: Utilise quatre octets (32 bits) pour coder les caractères. Il est devenu évident qu'avec la croissance de la norme Unicode, un nombre de 16 bits est trop petit pour représenter tous les caractères. UTF-32 est capable de représenter chaque caractère Unicode sous la forme d'un nombre.

Remarque: UTF signifie Unité de transformation Unicode.

Points de code

Un point de code est la valeur qu'un caractère est donnée dans la norme Unicode. Les valeurs selon Unicode sont écrites en nombres hexadécimaux et ont un préfixe de U +.

Par exemple, pour encoder les caractères que nous avons vus précédemment:

  • UNE est U + 0041
  • une est U + 0061
  • 1 est U + 0031
  • # est U + 0023

Ces points de code sont divisés en 17 sections différentes appelées plans, identifiées par les numéros 0 à 16. Chaque plan contient 65 536 points de code. Le premier plan, 0, contient les caractères les plus couramment utilisés et est appelé plan multilingue de base (BMP).

Unités de code

Les schémas de codage sont constitués d’unités de code, qui servent à fournir un index permettant de positionner un caractère sur un plan.

Prenons l'exemple de l'UTF-16. Chaque numéro de 16 bits est une unité de code. Les unités de code peuvent être transformées en points de code. Par exemple, le symbole de note simple ♭ a un point de code U + 1D160 et réside sur le deuxième plan de la norme Unicode (plan idéographique supplémentaire). Il serait codé en utilisant la combinaison des unités de code 16 bits U + D834 et U + DD60.

Pour le BMP, les valeurs des points de code et des unités de code sont identiques. Cela permet un raccourci pour UTF-16 qui économise beaucoup d’espace de stockage. Un seul nombre de 16 bits est nécessaire pour représenter ces caractères.

Comment Java utilise-t-il Unicode?

Java a été créé à l'époque où la norme Unicode avait des valeurs définies pour un jeu de caractères beaucoup plus petit. À l'époque, on pensait que 16 bits seraient plus que suffisants pour encoder tous les caractères nécessaires. Dans cet esprit, Java a été conçu pour utiliser UTF-16. Le type de données char a été utilisé à l'origine pour représenter un point de code Unicode 16 bits.

Depuis Java SE v5.0, le caractère représente une unité de code. La représentation des caractères figurant dans le plan multilingue de base n'a guère d'importance, car la valeur de l'unité de code est identique à celle du point de code. Cependant, cela signifie que pour les personnages des autres plans, deux caractères sont nécessaires.

Il est important de se rappeler qu'un seul type de données char ne peut plus représenter tous les caractères Unicode.