Du texte lu dans n’importe quel codage

Le texte arrive rarement à un programme sous forme de lettres. Il arrive en octets, depuis un fichier, une base de données ou un autre programme, et la même phrase donne des octets différents selon le codage dans lequel elle a été enregistrée. Ici, une ligne qui contient un signe euro, un tiret et une coche est écrite en octets de sept façons, en UTF-8 et dans les différentes formes d’UTF-16 et d’UTF-32, avec ou sans la marque qui les annonce. Chacune est relue et écrite sur la page, et les sept donnent le même résultat. Un caractère coupé en deux est refusé au lieu d’être écrit comme une lettre fausse.

Certains textes ne sont écrits qu’en lettres simples, avec un petit code à la place de chaque autre signe : un pour le signe euro, un pour un tiret, un pour une coche, un pour une lettre grecque. Une telle ligne est lue en ne traduisant qu’une sorte de code à la fois, puis aucune, puis les quatre, et un code qui ne désigne rien reste tel qu’il est écrit. Enfin, le mot café est écrit deux fois, une fois avec son é en un seul caractère et une fois en e suivi d’un accent, et la page dit sous quelle forme chacun est écrit.

Ce que montre cet exemple

  • Une ligne reçue dans sept codages, écrite à l’identique chaque fois.
  • Une ligne en lettres simples dont les codes sont lus ou laissés tels quels.
  • Une lettre accentuée en un caractère ou en deux.

Le code source complet

Rien n’est omis et rien n’est simplifié : c’est le programme exactement tel qu’il tourne, pour le développeur qui utilise cette bibliothèque.

Voir le code Rust Voir le code Python

Le document lui-même

Ouvrir le document en anglais Ouvrir le document en français Ouvrir le document en allemand Ouvrir le document en espagnol Ouvrir le document en italien Ouvrir le document en portugais

Exemples proches de celui-ci

Couper un mot trop long

Un mot plus long que la colonne qui le contient : la bibliothèque le laisse entier, le coupe au bord de la colonne, ou le coupe en finissant la ligne par un trait d’union.

Points de coupure après une barre oblique ou un trait d’union

Une colonne justifiée, quatre fois : des chemins de fichiers et des mots composés qui débordent faute de point de coupure, puis qui passent à la ligne là où une coupure est permise après une barre oblique ou un trait d’union, ensuite partout où leur ponctuation l’autorise, enfin avec des traits d’union insécables qui gardent chaque mot composé entier.

Une pile mise en page à la main, cadre par cadre

Un bon de livraison réparti dans deux cadres, le second reprenant là où le premier s’est arrêté, et une affiche dont l’image ne tient dans aucun cadre ; chaque cadre indique ce qu’il est advenu de sa pile.

Tous les exemples, par sujet