如何从电子邮件中的附件解码文件名?
如果文件名包含特殊字符,它看起来像这样..
ISO-8859-1''%56%61%72%65%6B%F8%62%20%45%55%20%2D%20%4D%61%78
答案 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。