Conserva la fuente antes de transformar
Este flujo prepara texto para otro sistema; no sustituye en silencio el registro original. Guarda la fuente y una muestra que revele el problema: caracteres ilegibles, puntuación fullwidth, fechas mezcladas, símbolos monetarios o secuencias MIME. Define el juego de caracteres, el ancho, la configuración regional y el formato de salida del receptor.
Corrige primero las capas de representación
Si la entrada es texto de transferencia de correo, usa quoted-printable-decoder antes de interpretar sus caracteres. Si los bytes del archivo están en otro juego de caracteres, usa después file-encoding-converter y conserva el intermedio. Así las etapas posteriores no tratan escapes o texto ilegible como contenido literal.
Escoge una sola dirección con fullwidth-to-halfwidth o halfwidth-to-fullwidth. La primera suele servir a identificadores y campos ASCII; la segunda a una convención de composición CJK. Comprueba también la puntuación y los dígitos.
Normaliza el contenido con una política explícita
Cuando la representación sea estable, usa text-date-format-unifier para fechas con patrón objetivo y text-currency-normalizer para importes con código y política conocidos. Conserva el valor previo y registra el cambio: normalizar una cadena monetaria no es aprobar una operación financiera.
Termina con la rama que necesita el receptor. advanced-case-converter sirve para convenciones de nombres, number-to-words para prosa y word-separator para listas por línea. Si el destino es MIME, aplica quoted-printable-encoder solo después de editar el texto. Revisa caracteres, fechas, importes, saltos de línea y formato final antes de entregar.