Preserve a fonte antes de converter
Este fluxo prepara texto para outro sistema; não substitui silenciosamente o registro original. Guarde a fonte e uma amostra que mostre o problema: caracteres ilegíveis, pontuação fullwidth, datas misturadas, símbolos de moeda ou sequências MIME. Defina conjunto de caracteres, largura, localidade e formato de saída do destino.
Corrija primeiro as camadas de representação
Se a entrada for texto de transferência de e-mail, use quoted-printable-decoder antes de interpretar os caracteres. Se os bytes do arquivo estiverem em outro conjunto de caracteres, use file-encoding-converter em seguida e preserve o intermediário. Assim, escapes ou mojibake não serão tratados como conteúdo literal.
Escolha uma direção com fullwidth-to-halfwidth ou halfwidth-to-fullwidth. A primeira costuma servir a identificadores e campos ASCII; a segunda, a uma convenção de composição CJK. Confira também pontuação e dígitos.
Normalize valores com uma política explícita
Quando a representação estiver estável, use text-date-format-unifier para datas com padrão definido e text-currency-normalizer para valores com código e política conhecidos. Preserve o valor anterior e registre a mudança: normalizar uma cadeia monetária não é aprovar uma operação financeira.
Finalize com o ramo adequado ao destino. advanced-case-converter trata convenções de nomes, number-to-words trata prosa e word-separator gera listas linha a linha. Se o destino for MIME, aplique quoted-printable-encoder somente depois de todas as edições. Verifique caracteres, datas, valores, quebras de linha e formato antes da entrega.