Toute information manipulée par les ordinateurs est codée et les textes ne font pas exception. Au contraire des nombres, pour lesquels les codes utilisés sont tout compte fait peu nombreux, il y a une grande variété dans les systèmes de codage utilisés pour le texte.
Je suis aussi en train d'écrire un document plus général sur les jeux de caractères codé, il peut fournir des informations utiles.
Comme souvent en matière de terminologie technique -- et encore plus souvent quand il s'agit de terminologie francophone --, il faut être conscient qu'il n'y a pas de définitions universelles. Certains emploient des termes différents pour désigner la même chose. D'autres emploient un même terme pour désigner des choses différentes. Voici la définition des termes employés ici, ils ne sont pas universellement employés dans ce sens.
Les caractères de contrôle font partie des caractères qui sont là parce qu'ils ont été jugés digne d'être encodé. On y trouve des caractères servant à gérer le formatage (passage à la ligne, tabulation), des caractères servant à séparer des blocs d'information, des caractères servant à contrôler des périphériques, des caractères servant à gérer les transmission, des caractères servant à gérer l'encodage, et d'autres choses choses encore.
Le C demande un certain répertoire minimum de caractères, appelé jeu de caractère de base: un caractère nul, les 26 lettres majuscules: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y et Z; les 26 lettres minuscules: a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y et z; les chiffres: 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9; une série de symboles: ! '' # % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ _ { | } et ~; un caractère espace et des caractères de contrôle pour un signal d'alerte (\a), tabulation horizontale (\t), la tabulation verticale (\v), le passage à la page suivante (\f), le retour au début de ligne (\r), le retour d'un caractère en arrière (\b) et le passage à la ligne suivante (\n).
Aux caractères de ce répertoire peuvent s'ajouter d'autres caractères, et les caractères ajoutés ainsi que leur représentation peuvent dépendre de la locale.
Le type char
est le byte d'un code qui peut être multibyte ou modal. Le C impose cependant certaines conditions sur le code: les chiffres doivent avoir des codes consécutifs commencant par le code du caractère 0, les caractères du jeu de base ont un code positif, sur un byte, valable dans l'état initial et le même code dans toutes les locales. Le caractère nul doit être représenté par un byte de valeur 0, indépendammant de la locale ou du mode. Un byte nul ne peut pas faire partie d'un caractère multibyte.