Сначала сохраните исходник
Этот процесс подготавливает текст для другой системы и не должен молча заменять исходную запись. Сохраните источник и пример, где видна проблема: нечитаемые символы, полноширинная пунктуация, смешанные форматы дат, знаки валюты или MIME-последовательности. До преобразования задайте кодировку, ширину, локаль и формат результата.
Сначала исправьте слои представления
Если вход является транспортным текстом письма, используйте quoted-printable-decoder до интерпретации символов. Если байты файла записаны в другой кодировке, затем примените file-encoding-converter и сохраните промежуточный результат. Так последующие шаги не примут escape-последовательности или кракозябры за буквальное содержимое.
Выберите одно направление с помощью fullwidth-to-halfwidth или halfwidth-to-fullwidth. Первое обычно подходит идентификаторам и ASCII-полям, второе — правилу набора CJK. Сравнивайте не только буквы, но и пунктуацию с цифрами.
Выборочно нормализуйте значения со смыслом
После стабилизации представления используйте text-date-format-unifier для даты с заданным шаблоном и text-currency-normalizer для сумм с известными кодом и политикой. Сохраняйте прежнее значение и фиксируйте изменение: нормализация валютной строки не является финансовым одобрением.
Завершите веткой, соответствующей получателю. advanced-case-converter обрабатывает соглашения об именовании, number-to-words — обычный текст, а word-separator — списки по строкам. Для MIME применяйте quoted-printable-encoder только после всех правок текста. Перед передачей проверьте символы, даты, суммы, переводы строк и итоговый формат.