Кодировка MimeDecode koi8r

У меня проблема с кодировкой koi8r с mimeDecode,

В качестве примера:

Тема: =?KOI8-R?B?8NLJ18XUIQ==?= От: =?KOI8-R?B?4czFy9PBzsTSIPfPzMvP1w==?=

становится:

Тема: п÷я─п╦п╡п╣я┌! Откуда: Александр Волков

Это должно быть следующим,

Тема: Привет! Откуда: Александр Волков

Так что точная проблема

        if (is_string($this->_decode_headers)) {
            $conv = @iconv($charset, $this->_decode_headers, $text);
            $text = ($conv === false) ? $text : $conv;
        }

Спасибо.

ОБНОВЛЕНИЕ Решено, проблема была в том, что заголовки писем были сохранены в БД в другой кодировке.

1 ответ

Решение

Разве вы не хотите использовать mb_decode_mimeheader?

iconv переводит закодированные строки, здесь ваша строка только ascii.

mb_internal_encoding("UTF-8");
$string = "=?KOI8-R?B?8NLJ18XUIQ==?=";
$conv = mb_decode_mimeheader($string);

Это будет работать при условии, что вы отправляете строку в кодировке utf-8, в противном случае вам придется адаптировать первую команду

Другие вопросы по тегам