Encodage du texte
Mon lecteur sait-il dans quel encodage est un fichier, ou devine-t-il ?
Le préréglage text-encoding construit en une commande tout un jeu de vrais fichiers de test
pour cette question, avec un manifest.json à côté qui dit comment votre système doit
réagir à chaque fichier. Tout ce qui suit est lu depuis le programme, aux valeurs par défaut de
cette version.
Que trouve-t-il d'habitude ?
- un lecteur qui suppose de l'UTF-8 et montre un fichier UTF-16 avec un caractère sur trois, ou en rangées de carrés
- une marque d'ordre des octets lue comme du contenu, si bien que le premier champ d'un import commence par trois caractères parasites
- un importeur qui devine l'encodage d'après les premiers octets et devine autrement pour un fichier plus long
- un fichier CRLF découpé en lignes avec une ligne vide après chacune, ou un retour chariot resté dans le dernier champ
Que contient le jeu ?
Aux valeurs par défaut, comme le rapporte tfg preset show text-encoding :
| Fichiers | 20 |
|---|---|
| Cibles dans sa recette | 20 |
| Taille totale | 81 920 B |
| Formats | csv, log, md, txt, xml |
Et ce que le manifeste de ce jeu attend de votre système :
| Attendu | Signification | Fichiers |
|---|---|---|
accept | Votre système doit accepter le fichier. | 10 |
unspecified | Cela dépend des règles de votre système. Vous décidez, puis vous vérifiez que ce qui se passe est ce que vous aviez voulu. | 10 |
Que pouvez-vous modifier ?
| Réglage | Accepte | Par défaut | Ce qu'il fait |
|---|---|---|---|
--sample |
une taille comme 2mb | 4kb |
La taille de chaque fichier du jeu. L'UTF-16 stocke deux octets par caractère, donc un nombre impair est refusé. |
Comment le lancer ?
Voyez ce que coûterait le jeu, construisez-le ou prenez sa recette pour la modifier :
tfg preset show text-encoding
tfg generate --preset text-encoding --out ./text-encoding
tfg preset eject text-encoding > text-encoding.yaml
Ou bâtissez dessus dans une recette à vous, à côté de vos tests :
version: 1
extends: preset:text-encoding