Tekencodering
Weet mijn lezer in welke codering een bestand staat, of gokt hij?
De preset text-encoding bouwt met één opdracht een hele set echte testbestanden voor deze
vraag, en een manifest.json ernaast dat zegt hoe je systeem op elk bestand moet
reageren. Alles hieronder wordt uit het programma gelezen, bij de standaardwaarden van deze
versie.
Wat vindt hij meestal?
- een lezer die UTF-8 aanneemt en een UTF-16-bestand toont als één teken op de drie, of als rijen vakjes
- een byte order mark die als inhoud wordt gelezen, zodat het eerste veld van een import met drie vreemde tekens begint
- een importeur die de codering uit de eerste bytes raadt en bij een langer bestand anders raadt
- een CRLF-bestand dat in rijen wordt gesplitst met na elke rij een lege rij, of een regelterugloop die in het laatste veld blijft staan
Wat zit er in de set?
Bij de standaardwaarden, zoals tfg preset show text-encoding het meldt:
| Bestanden | 20 |
|---|---|
| Targets in het recept | 20 |
| Totale grootte | 81 920 B |
| Formaten | csv, log, md, txt, xml |
En wat het manifest van die set van je systeem verwacht:
| Verwacht | Betekenis | Bestanden |
|---|---|---|
accept | Je systeem moet het bestand aannemen. | 10 |
unspecified | Het hangt af van de regels van je systeem. Jij beslist, en controleert daarna of wat er gebeurt is wat je bedoelde. | 10 |
Wat kun je wijzigen?
| Instelling | Accepteert | Standaard | Wat het doet |
|---|---|---|---|
--sample |
een grootte zoals 2mb | 4kb |
Hoe groot elk bestand van de set is. UTF-16 slaat twee bytes per teken op, dus een oneven getal wordt geweigerd. |
Hoe draai je hem?
Bekijk wat de set zou kosten, bouw hem, of neem zijn recept om te bewerken:
tfg preset show text-encoding
tfg generate --preset text-encoding --out ./text-encoding
tfg preset eject text-encoding > text-encoding.yaml
Of bouw erop voort in een eigen recept, naast je tests:
version: 1
extends: preset:text-encoding