А есть в PHP что-то для кодирования/декодирования по RFC5987?

Господа,
а есть в PHP (или около) какой-нибудь штатный инструмент для корректного декодирования вот такого?
title*=UTF-8''%c2%a3%20and%20%e2%82%ac%20rates

У меня есть автоматический обработчик писем со всякой очень нужной фигней в аттачах, которые он распознает по названию файлов. Умеет разбирать MIME-заголовки в разных кодировках, все такое...

И вот все норм было, пока я не начал сам себе отправлять письма из Thunderbird-a, который вот таким образом кодирует имена файлов (да, в RFC5987 описан такой вариант, но я как-то до сих пор не столкнулся).

Обычный urldecode вроде строку переваривает, и если просто отобросить приставку utf-8'' то получается то, что надо... но это как-то костылеобразно и не по феншую, и рано или поздно вылезет мне боком.

Так вот, вопрос: есть какой-то штатный инструмент кодирования/декодирования в такой нотации?
  • Вопрос задан
  • 487 просмотров
Решения вопроса 2
Пригласить эксперта
Ответы на вопрос 1
egor_nullptr
@egor_nullptr
php.net/urldecode
php.net/mb_convert_encoding
$string = "title*=UTF-8''%c2%a3%20and%20%e2%82%ac%20rates";
list($name, $content) = explode('*=', $string);
list($enc, $lang, $raw) = explode("'", $content);
$final = mb_convert_encoding(urldecode($raw), 'utf-8' /* целевая кодировка */, $enc);
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы