Un exemple avec la console sous Windows XP

Rôle de la page de codes et de la police dans l'affichage du texte par la console.

  1. I. La console et ses polices
    1. La page de codes
    2. Jeux d'essai
  2. II. Essais
    1. Avec la police Raster (bitmap)
    2. Avec la police Lucida

I. La console et ses polices

Il s'agit de l'utilitaire Invite de commandes (cmd.exe) qui affiche une fenêtre "console" permettant d'exécuter des programmes en ligne de commande. Cette fenêtre, en tant qu'objet, a plusieurs attributs (appelées propriétés dans le vocabulaire de Windows), parmi lesquels la police de caractères qui sert à l'affichage du texte.

Fenêtre

Police Raster

Comme on voit, on a le choix entre une police True-Type Lucida et une famille de polices bitmap (alias raster) dans différentes tailles.
C'est la police bitmap 8x12 qui est choisie par défaut. Le choix de la police modifie évidemment l'apparence visuelle de la fenêtre ...

Police Lucida

mais nous allons voir que ce choix a en fait des conséquences plus étendues, en conjonction avec le choix de la page de codes (c'est-à-dire du codage des caractères) employée par Windows (et non plus seulement par la fenêtre). Sur la notion de page de codes, voir le cours n° 3.

La page de codes


La commande qui permet de connaître la page de codes active, et de la changer au besoin, est chcp (Change Code Page). Sans argument, elle livre le numéro de la page de codes active, avec pour argument un numéro de page de codes, elle active cette dernière.

chcp

Jeux d'essai

Nous allons voir successivement comment s'affichent cinq lignes de texte fisant appel à des caractères de plus en plus "exotiques", 
par copier-coller depuis une fenêtre de l'éditeur Bloc-notes.

Bloc-notes
.................. du bon français
............... du grec moderne
................... du grec ancien
...................... du cyrillique
..................... de l'arménien


II. Essais

  1. Avec la police Raster (bitmap)

    Avec les réglages par défaut :

    Raster 1

    C'est presque parfait ! Toutefois, le "o-e mêlés", alias "e dans l'o" dans "sœur" est remplacé par un banal "o"...
    Rien d'étonnant pour qui connaît l'histoire de la codification de ce caractère. En effet, il ne figure pas dans la table de CP850.
    Mais à quel niveau cette décision a-t-elle été prise ?
    Essayons avec la page de codes 1252, qui possède le caractère litigieux (voyez Windows-1252).

    Raster 2

    Aïe ! Plus aucune lettre accentuée ne passe. Pourquoi ?
    La comparaison des deux tables ne livre aucun indice exploitable...

    Revenons donc à CP850, et essayons de lui parler grec moderne : Ελληνική γλώσσα

    Raster 3

    On peut constater deux choses :
    1. La police ne possède point de caractère grec - rien d'étonnant.
    2. Pour sigma et alpha, le système a trouvé des remplaçants s et a. Pourquoi pas pour les autres ?

  2. Avec la police Lucida

    Voyons à présent ce que donne la police True-Type :

    Lucida 1

    Absolument parfait ! Pourtant, nous avons vu que la CP850 ne connaissait pas le "œ"...
    Même résultat avec CP1252...

    Lucida 2

    Le grec moderne passe également :

    Lucida 3

    Mais le grec ancien a du mal !
    Μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος - Chante, déesse, la colère d'Achille fils de Pélée (le premier vers de l'Iliade)

    Lucida 4

    Là encore, rien d'étonnant ! Nous verrons que les lettres accentuées du grec ancien (sauf le iota tréma) sont codées d'une manière différente de celles du grec moderne (système polytonique vs. système monotonique).

    Continuons avec le cyrillique, dérivé du grec : Русский Язык

    Lucida 5

    Sans problème ! Mais avec l'arménien, autre alphabet dérivé du grec...
    De Հայաստանյան Գրադարանային Միավորում   = Consortium des bibliothèques arméniennes

    Lucida 6

    il ne reste rien !
    Arrêtons-nous là.