解码这个字符串的正确函数是什么?

时间:2011-12-05 18:11:20

标签: php string decode

大家晚上好!

我一直在用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;
}

标题正确解密,而文件名则没有。可能是什么问题或更好,我该如何解决?

编辑:我使用php中的imap_函数来完成所有邮件事务(使用带有ssl的pop3)

2 个答案:

答案 0 :(得分:1)

这种类型的编码称为 url encoding ,它在RFC 3986中定义(“URI语法”)。您可以使用urldecode对其进行解码。

答案 1 :(得分:1)

urldecoderawurldecode

  

rawurldecode()不会将加符号('+')解码为空格。 urldecode()确实如此。