Textkodierung
Weiß mein Leser, in welcher Kodierung eine Datei vorliegt, oder rät er?
Das Preset text-encoding baut mit einem Befehl ein ganzes Set echter Testdateien für diese
Frage und ein manifest.json daneben, das beschreibt, wie dein System auf jede Datei
reagieren soll. Alles unten wird aus dem Programm gelesen, mit den Standardwerten dieser Version.
Was findet es meistens?
- ein Leser, der UTF-8 annimmt und eine UTF-16-Datei als jedes dritte Zeichen oder als Reihen von Kästchen anzeigt
- eine Byte Order Mark, die als Inhalt gelesen wird, sodass das erste Feld eines Imports mit drei fremden Zeichen beginnt
- ein Importer, der die Kodierung aus den ersten Bytes errät und bei einer längeren Datei anders rät
- eine CRLF-Datei, die in Zeilen mit einer leeren Zeile nach jeder zerlegt wird, oder ein Wagenrücklauf, der im letzten Feld stehen bleibt
Was steckt im Set?
Mit den Standardwerten, wie es tfg preset show text-encoding ausgibt:
| Dateien | 20 |
|---|---|
| Targets in seinem Rezept | 20 |
| Gesamtgröße | 81 920 B |
| Formate | csv, log, md, txt, xml |
Und was das Manifest dieses Sets von deinem System erwartet:
| Erwartet | Bedeutung | Dateien |
|---|---|---|
accept | Dein System soll die Datei annehmen. | 10 |
unspecified | Das hängt von den Regeln deines Systems ab. Du entscheidest, dann prüfst du, ob das Ergebnis dem entspricht, was du gemeint hast. | 10 |
Was kannst du ändern?
| Einstellung | Nimmt | Standard | Was es tut |
|---|---|---|---|
--sample |
eine Größe wie 2mb | 4kb |
Wie groß jede Datei des Sets ist. UTF-16 speichert zwei Bytes pro Zeichen, daher wird eine ungerade Zahl abgewiesen. |
Wie führst du es aus?
Sieh nach, was das Set kosten würde, baue es oder nimm sein Rezept zum Bearbeiten:
tfg preset show text-encoding
tfg generate --preset text-encoding --out ./text-encoding
tfg preset eject text-encoding > text-encoding.yaml
Oder baue in einem eigenen Rezept darauf auf, neben deinen Tests:
version: 1
extends: preset:text-encoding