У меня имеется архив электронных писем той эпохи когда UTF-8 ещё не окончательно утвердился для электронной переписки на русском языке кириллицей. Соответственно, письма хранятся в разных кодировках и списком выглядят довольно кошмарно. Для того чтобы прочитать сообщение, надо каждый раз выставлять разные кириллические кодировки, пока одна из них не подойдёт а проще воспользоваться онлайн-декодерами. Но это всё не то, долгосрочным и правильным решением было бы привести все к UTF-8. Но как сделать это для архивных писем? Обычно почтовики не разрешают редактировать полученные и отправленные сообщения.
Каким может быть выход? Напрямую править mbox файл и исправить в нем кодировки? Экспортировать в БД и менять кодировку оттуда, какой выход может быть из ситуации?
А в чем и как вы просматриваете список писем, что он выглядит кошмарно? Письма могут быть в любых кодировках, обычно при просмотре и при составлении списка писем кодировка конвертируется в отображаемую.
Я к тому, что ждать, что все новые письма будут приходить в UTF-8 не стоит. Например Яндекс любит слать кириллицу в koi8-r, а GMail в (внезапно) в big5.
Владимир Дубровин: Дело в том, что архив кочевал несколько раз. Изначально все приходило в чудо-юдо почтовик PokoMail, затем оттуда я это экспортировал в Thunderbird и в нем сейчас половину кириллических писем - с кракозябрами.
Микаел Григорян: Возможно дело не столько в кодировках, сколько в битых заголовках архивных писем. С новыми письмами все в порядке а вот старые их PokoMail - как попало.
Микаел Григорян: надо разбираться почему так. Возможно при экспорте потерялся charset в Content-Type, а возможно наоборот, что при экспорте контент был перекодирован в UTF-8, а charset не поменялся, поэтому отображается некорректно. В последнем случае в письмах надо не текст переводировать, а charset править.
Мне видится единственный, хоть и трудоемкий и доооооолгий способ - экспорт в maildir, правка каждого письма в соответствии с кодировкой и обратный экспорт. Почему именно в maildir - там проще письма редактировать. Можно в mbox.
Вы мне подсказали правильное направление мысли, хотя и Владимир Дубровин подсказал, что дело не в кодировках. Я переколдовал mbox в eml с помощью бесплатной Windows утилиты IMAPSize. А дальше у каждого файла подправить кодировку - дело пол-минуты. Таких писем на пол-сотни наберётся, ноя благо не спешу никуда, мне верность результата важнее скорости.