Какова будет правильная функция для декодирования этой строки? - PullRequest
0 голосов
/ 05 декабря 2011

Добрый вечер всем!

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

ISO-8859-15 ''% 46% 6C% 79% 65% 72% 20% 53% 61%69% 73% 6F% 6E% 65% 72% F6% 66

Для декодирования заголовков используется эта функция:

private function imap_header_decode($text) {
    $ret = "";
    $elements = imap_mime_header_decode($text);
    for($i = 0; $i < count($elements); $i++) {
        $ret .= utf8_decode($elements[$i]->text);
    }
    return $ret;
}

Заголовки корректно дешифруются, покаимена файлов неВ чем может быть проблема или лучше, как я могу ее решить?

РЕДАКТИРОВАТЬ: я использовал функции imap_ из php для выполнения всех почтовых операций (используя pop3 с ssl)

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

urldecode и rawurldecode.

rawurldecode() не декодирует символы плюс ('+') в пробелы. urldecode() делает.

1 голос
/ 05 декабря 2011

Этот тип кодировки называется url-кодировка и определен в RFC 3986 («Синтаксис URI»). Вы можете расшифровать его с помощью urldecode.

...