imap:解码附件中的文件名

时间:2014-09-12 11:08:32

标签: php imap

如何从电子邮件中的附件解码文件名?

如果文件名包含特殊字符,它看起来像这样..

ISO-8859-1''%56%61%72%65%6B%F8%62%20%45%55%20%2D%20%4D%61%78

3 个答案:

答案 0 :(得分:2)

它是一个url编码的字符串:

$string = "ISO-8859-1''%56%61%72%65%6B%F8%62%20%45%55%20%2D%20%4D%61%78";
$string = urldecode($string); // obviously use urldecode
$string = iconv('ISO-8859-1', 'utf-8', $string);
$string = str_replace('ISO-8859-1', '', $string);
echo $string; // ''Varekøb EU - Max

答案 1 :(得分:1)

使用PHP:

echo urldecode('%56%61%72%65%6B%F8%62%20%45%55%20%2D%20%4D%61%78');

输出:VarekøbEU-最大

答案 2 :(得分:1)

您可以使用rawurldecode - 解码网址编码的字符串:

$string = "ISO-8859-1''%56%61%72%65%6B%F8%62%20%45%55%20%2D%20%4D%61%78";
echo $str = rawurldecode($string); // ISO-8859-1''Varekøb EU - Max

信息:返回一个字符串,其中带有百分号(%)的序列后跟两个十六进制数字已被文字字符替换。 (RFC 3986

如果字符串中包含空格,请使用urldecode(),但在某些情况下它可以是less safe