Kodowanie tekstu
Czy mój czytnik wie, w jakim kodowaniu jest plik, czy zgaduje?
Preset text-encoding buduje jednym poleceniem cały zestaw prawdziwych plików testowych do
tego pytania, a obok nich manifest.json, który mówi, jak system ma zareagować na każdy
plik. Wszystko poniżej pochodzi z programu, przy wartościach domyślnych tej wersji.
Co zwykle znajduje?
- czytnik, który zakłada UTF-8 i pokazuje plik UTF-16 jako jeden znak na trzy albo jako rzędy prostokątów
- znacznik kolejności bajtów wczytany jako treść, więc pierwsze pole importu zaczyna się od trzech obcych znaków
- import, który zgaduje kodowanie z pierwszych bajtów i dla dłuższego pliku zgaduje inaczej
- plik z CRLF podzielony na wiersze z pustym wierszem po każdym albo znak powrotu karetki zostawiony w ostatnim polu
Co jest w zestawie?
Przy wartościach domyślnych, tak jak podaje to tfg preset show text-encoding:
| Pliki | 20 |
|---|---|
| Cele w przepisie | 20 |
| Łączny rozmiar | 81 920 B |
| Formaty | csv, log, md, txt, xml |
I czego manifest tego zestawu oczekuje od Twojego systemu:
| Oczekiwanie | Znaczenie | Pliki |
|---|---|---|
accept | System powinien przyjąć plik. | 10 |
unspecified | Zależy od reguł Twojego systemu. Ty decydujesz, a potem sprawdzasz, czy dzieje się to, co zamierzałeś. | 10 |
Co można zmienić?
| Ustawienie | Przyjmuje | Domyślnie | Co robi |
|---|---|---|---|
--sample |
rozmiar, na przykład 2mb | 4kb |
Jak duży jest każdy plik zestawu. UTF-16 zapisuje dwa bajty na każdy znak, więc liczba nieparzysta zostaje odrzucona. |
Jak go uruchomić?
Sprawdź, ile zestaw będzie kosztował, zbuduj go albo weź jego przepis do edycji:
tfg preset show text-encoding
tfg generate --preset text-encoding --out ./text-encoding
tfg preset eject text-encoding > text-encoding.yaml
Albo zbuduj na nim własny przepis, trzymany obok testów:
version: 1
extends: preset:text-encoding