Кодировка текста
Знает ли мой читатель, в какой кодировке файл, или угадывает?
Пресет text-encoding одной командой собирает целый набор настоящих тестовых файлов для
этого вопроса и рядом manifest.json с ожидаемой реакцией вашей системы на каждый
файл. Всё ниже прочитано из программы со значениями по умолчанию этой версии.
Что он обычно находит?
- читатель, который предполагает UTF-8 и показывает файл UTF-16 с одним символом из трёх или рядами квадратиков
- метка порядка байтов, прочитанная как содержимое, из-за чего первое поле импорта начинается с трёх лишних символов
- импортёр, который угадывает кодировку по первым байтам и угадывает иначе для более длинного файла
- файл CRLF, разбитый на строки с пустой строкой после каждой, или возврат каретки, оставшийся в последнем поле
Что входит в набор?
Со значениями по умолчанию, как сообщает tfg preset show text-encoding:
| Файлов | 20 |
|---|---|
| Целей в его рецепте | 20 |
| Общий размер | 81 920 B |
| Форматы | csv, log, md, txt, xml |
И чего манифест этого набора ожидает от вашей системы:
| Ожидается | Значение | Файлов |
|---|---|---|
accept | Ваша система должна принять файл. | 10 |
unspecified | Зависит от правил вашей системы. Вы решаете, а затем проверяете, что происходит именно то, что вы имели в виду. | 10 |
Что можно изменить?
| Настройка | Принимает | По умолчанию | Что делает |
|---|---|---|---|
--sample |
размер, например 2mb | 4kb |
Размер каждого файла набора. UTF-16 хранит по два байта на символ, поэтому нечётное число отклоняется. |
Как его запустить?
Посмотрите, чего стоил бы набор, соберите его или возьмите его рецепт для правки:
tfg preset show text-encoding
tfg generate --preset text-encoding --out ./text-encoding
tfg preset eject text-encoding > text-encoding.yaml
Или стройте на нём в собственном рецепте рядом с тестами:
version: 1
extends: preset:text-encoding