Encodage des chaînes ABC

[ABC 2.0]

Généralités

Une "chaîne ABC" est une chaîne de caractères ascii 7 bits (0-127), c'est-à-dire une chaîne de texte excluant les caractères accentués et autres caractères spéciaux. Ces caractères étendus (caractères 8 bits, 128-255) sont remplacés par une séquence de codage en caractères 7 bits.

Cet encodage des caractères 8 bits est le même que pour l'HTML sur le plan du principe, mais les codes utilisés diffèrent totalement.

Rappel : pour un ordinateur tout caractère (lettre, chiffre ou caractères spécial) est représenté en interne par un octet, c.à.d. un ensemble de 8 bits, un bit étant une unité logique valant 0 ou 1. Un octet est donc un nombre binaire de 8 bits, valant donc de 00000000 à 11111111 ce qui correspond en décimal à 0 à 255. Pour les caractères standards, seuls les 7 premiers bits sont utilisés (00000000 à 01111111 soit 0 à 127). Les caractères sur 8 bits sont appelés caractères étendus et ne sont pas standardisés.

NB : les chaînes ABC utilisent par défaut le jeu de caractères Latin-1.

Intérêts du codage :

Le codage sur 7 bits améliore considérablement la compatibilité internationale et inter-plateformes en cas de distribution des fichiers. En effet, si les caractères standards (0-127) sont à peu près identiques dans tous les jeux de caractères basés sur le latin, les caractères étendus sont par contre très variables suivant les jeux utilisés (en fonction des pays et en fonction des systèmes d'exploitation), ce qui entraîne des permutations anarchiques de caractères lors de l'affichage.

Inconvénients du codage :

L'encodage des caractères étendus altère beaucoup la lisibilité directe des fichiers, allant donc à l'encontre de l'esprit même du format ABC : simplicité et lisibilité directe des fichiers (mais les permutations anarchiques de caractères ne sont pas très lisibles non plus... ).

L'encodage des caractères étendus utilisé par ABC est différent de celui, bien connu, utilisé par HTML. En conséquence, les moteurs de recherches ne peuvent indexer correctement les fichiers ABC présents sur le Web qui utilisent ce codage, alors qu'un fichier ABC n'utilisant pas de codage sera correctement indexé et donc plus facile à trouver.

 

En conclusion, ne pas oublier que la norme 2.0 n'est pas une norme officielle, l'encodage des caractères étendus reste donc totalement facultatif.

Codage des caractères étendus

Chaque caractère étendu (codes numériques de 128 à 255) est remplacé par une séquence de codage qui débute par un anti-slash "\" suivi d'un accent conventionnel (qui évoque mais peut différer de l'accent ou du signe diacritique réel) puis de la lettre à accentuer ou d'un groupe de lettre dans le cas d'une ligature.

Voici une table simplifiée des codages (cette table ne contient que les codages utiles en français, voir la documentation ABC officielle pour consulter la table complète des codages) :

 

 

Caractères 8 bits

Codage ABC

Accent grave

À à ...

\`A \`a \`...

Accent aigu

Á á ...

\'A \'a ...

Accent circonflexe

 â ...

\^A \^a \^...

Tréma

Ä ä ...

\"A

Tilde

à ã ...

\~A \~a \~...

Cédille

Ç ç ...

\,C \,c \,...

Ligature

Æ æ ...

\AE \ae \...

Anti-slash

\

\\

 

Les logiciels ne gérant pas les caractères étendus doivent les réduirent à la lettre de base et séparer les ligatures.

Les caractères peuvent aussi être encodés par leur code ascii précédé de "\d" et suivi par ";"

Exemple : \d194; = Â (dans le jeu Latin-1)

Symboles spéciaux

Quelques caractères spéciaux sont encodables avec une syntaxe qui leur est propre :

 

 

Codage ABC

Copyright

(C)

Bémol

(b)

Dièse

(#)

Bécarre

(=)

 

Polices de caractères

Les indicateurs$1, $2, $3 et $4 permettent de changer de police dans une chaîne ABC.

Les polices correspondant à ces indicateurs sont définies par la directive de feuille de style %%setfont-n. (cf.)

L'indicateur $0 réinitialise la police à sa valeur par défaut.

L'indicateur $$ permet d'afficher le symbole dollar lui-même.