2014-09-12 73 views
1

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

如果文件名包含特殊charactors它看起来是这样的..

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

回答

1

你可以使用rawurldecode - 解码URL编码字符串:

$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

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

随着PHP:

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

输出:Varekøb EU - Max