Codage de caractères 101
October 27th, 2008 icanlocalize Posté dans Uncategorized | Pas de Commentaires »
127 caractères ou moins
Les caractères européens peuvent aussi être codés avec un seul octet (8 bits) par caractère. L’ancienne version de Windows le faisait. La correspondance entre le code de caractères et sa représentation graphique est appelée la page de code. Si votre programme ne supporte pas les caractères Unicode, il peut toujours être localisé, mais il fonctionnera correctement que dans une seule langue. C’est parce que la page de code sur un PC ne peut être réglée d’une valeur à la fois.
Plus de 127 caractères
En supposant que vous voulez que votre programme parle en plusieurs langues, vous aurez besoin de plus de 127 caractères différents. Ceci pourrait être le cas si vous voulez une seule version pour soutenir plusieurs langues. Ceci peut également arriver si vous voulez juste supporter une langue asiatique qui, au départ, a plus de 127 caractères (japonais, chinois, coréen, etc.)
Alors, qu’est-ce qu’on fait?
La meilleure alternative serait d’utiliser les caractères Unicode. Ce qu’il reste à se demander c’est de savoir comment coder les chaînes Unicode dans l’application.
Juste un petit rappel: vos fichiers de source sont stockés octet par octet Si vous avez des chaînes Unicode, elles doivent être codées en octets. Ensuite, pendant la durée d’utilisation, elles seront décodées encore à l’Unicode.
Les différents codages de caractères Unicode
Essayez ce document texte avec les caractères non-anglais. Ouvrez-le avec le Bloc-notes (qui vient standard dans Windows). Vous verrez certains textes dans des langues différentes (anglais, espagnol et hébreu) Maintenant, cliquez sur File-> Save as
La boîte de dialogue enregistrée vous demande quel codage utiliser. La valeur initiale est l’UTF-8, qui est en quoi ce fichier a été sauvé. Si vous essayez de le changer à ANSII et de le sauvegarder, vous obtiendrez un message d’erreur. C’est parce que les caractères du fichier n’entrent pas dans le jeu de caractères du 127 ANSII.
Bloc-notes peut encoder le fichier en tant que ANSI, UTF-8, Big Endian Unicode (Motorola PowerPC) et Little Endian Unicode (Intel Pentium) Essayez de sauvegarder le fichier à l’aide d’un codage différent et ouvrez-le dans un octet binaire ou éditeur. Vous verrez le même texte codés de différentes façons.
UTF-8 veut dire Unicode Transformation Format (8). Il emploie des séquences d’octets, de longueurs différentes, pour encoder des caractères différents. La bonne chose est que les caractères se convertissent elles-même. Cela signifie texte anglais simple est un UTF-8 valable.
Manche Spéciale – codage de caractères et langues de marquage.
En supposant que vous avez certains textes Unicode, codés en octets qui doivent être inclus dans une langue de balisage (comme HTML, XHTML ou XML), qu’est-ce qui est la bonne ordre des choses?
Voici la réponse:
Unicode text <> Byte encoding <> Markup escape <> Markup
Donc, si vous allez placer les textes Unicode dans un fichier HTML, c’est ce que vous allez faire:
- Encoder le texte comme UTF-8.
- Appliquer le code HTML d’échappement (par exemple, remplacer < avec < et & avec &).
- Envelopper à l’intérieur des onglets HTML.
Vous allez placer les données méta de l’encodage dans le code HTML de tête, de sorte que l’analyseur (navigateur) saura comment le décoder:
<meta http-equiv=content-type content="text/html; charset=UTF-8">
Lorsque le navigateur reçoit le HTML, il va faire la même chose, à l’inverse:
- Découpe le code HTML et extraie les textes.
- Défaire le code HTML d’échappement.
- Décoder la chaîne d’octets UTF-8 et produire un texte Unicode.
La même idée s’applique pour d’autres techniques d’échappement. Si vous codez un URL, l’encodage URL sera nécessaire.
Parlons-en
Quelle est votre expérience avec l’encodage de caractères différents? Aviez-vous des problèmes à aborder?
Laisser une Réponse