Base64_decode как исправить кракозябры?

Суть простая.
Беру сообщение из почты через imap_open().

$header = imap_header($mbox, $msgno);  //Достаю заголовок
$subject = $header->subject;


В итоге заголовок письма закодирован в base64:
=?UTF-8?B?RndkOiDQn9C+0YHRgtGD0L/Qu9C10L3QuNC1INC90LAg0YHRh9C10YI=?=

При декоде выходят кракозябры.
Если пользоваться сервисом типа online-decoder.com, то все декодирует отлично с пометкой (BASE64->UTF-8)
Сама страница, где делается echo в utf-8.

Причем эта же фраза при переводе обратно в base64:
0J/QvtGB0YLRg9C/0LvQtdC90LjQtSDQvdCwINGB0YfQtdGC

Где мой косяк? или что я упустил?
  • Вопрос задан
  • 3404 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ответ написан
Комментировать
@link_irk
Эта строка не является валидным base64. Если отрезать от неё лишнее и оставить (в вашем примере):
RndkOiDQn9C+0YHRgtGD0L/Qu9C10L3QuNC1INC90LAg0YHRh9C10YI=
то такая строка успешно декодируется
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
software engineer
Знак '=' в base64 может быть только в самом конце, один или два, в зависимости от окончания триады, а может и не быть.
Знаков '?' вопроса быть не должно.
Исходя из вашей строки, попробуйте отрезать текст между знаками вопроса - по-моему именно ими отделяется нужный текст.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект