解决UTF-8编码VBB3附件下载名乱码

使用UTF-8编码的VBB3论坛在下载中文附件时,在IE下会出现乱码,而在Firefox下正常,经过摸索,终于发现了解决方法,与诸君分享:

打开attachment.php文件,查找:

header('Cache-control: max-age=31536000');
header('Expires: ' . gmdate("D, d M Y H:i:s", TIMENOW + 31536000) . ' GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $attachmentinfo['dateline']) . ' GMT');

在其后添加:

if (!isset($isIE))
    {
        static
$isIE;
        
$isIE = iif(is_browser('ie'), true, false);
    }
    
if (
$isIE)
    {
        
$attachmentinfo[filename] = iconv("UTF-8","GBK",$attachmentinfo[filename]);    
    }

若没有iconv库,但是Linux主机,可以将后半部分替换为:

if ($isIE)
    {
        
$cmd = "echo '$attachmentinfo[filename]' | iconv -f UTF-8 -t GBK";
        
$attachmentinfo[filename] = shell_exec($cmd);        
    }