Codificação de texto
Meu leitor sabe em que codificação um arquivo está, ou está adivinhando?
O preset text-encoding monta com um único comando um conjunto inteiro de arquivos de teste
reais para esta pergunta, e um manifest.json ao lado dizendo como seu sistema deve
reagir a cada arquivo. Tudo abaixo é lido do programa, com os valores padrão desta versão.
O que ele costuma encontrar?
- um leitor que presume UTF-8 e mostra um arquivo UTF-16 com um caractere a cada três, ou como fileiras de quadradinhos
- uma marca de ordem de bytes lida como conteúdo, de modo que o primeiro campo de uma importação começa com três caracteres estranhos
- um importador que adivinha a codificação pelos primeiros bytes e adivinha diferente num arquivo mais longo
- um arquivo CRLF dividido em linhas com uma linha vazia depois de cada uma, ou um retorno de carro que sobra dentro do último campo
O que há no conjunto?
Com os valores padrão, como o tfg preset show text-encoding informa:
| Arquivos | 20 |
|---|---|
| Targets na sua receita | 20 |
| Tamanho total | 81 920 B |
| Formatos | csv, log, md, txt, xml |
E o que o manifesto desse conjunto espera do seu sistema:
| Esperado | Significado | Arquivos |
|---|---|---|
accept | Seu sistema deve aceitar o arquivo. | 10 |
unspecified | Depende das regras do seu sistema. Você decide e depois confere se o que acontece é o que você queria. | 10 |
O que você pode mudar?
| Configuração | Aceita | Padrão | O que faz |
|---|---|---|---|
--sample |
um tamanho como 2mb | 4kb |
O tamanho de cada arquivo do conjunto. UTF-16 guarda dois bytes por caractere, então um número ímpar é recusado. |
Como executar?
Veja quanto o conjunto custaria, monte-o ou pegue a receita dele para editar:
tfg preset show text-encoding
tfg generate --preset text-encoding --out ./text-encoding
tfg preset eject text-encoding > text-encoding.yaml
Ou construa sobre ele em uma receita sua, ao lado dos seus testes:
version: 1
extends: preset:text-encoding