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

引用通告(0) 评论(3)
使用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);        
    }

引用通告(0)

被引用的日记: 解决UTF-8编码VBB3附件下载名乱码

TrackBack URL for this entry: http://www.thinkjam.org/loveblog/tjtb.cgi/54.
如果您想引用这篇日记到您的Blog,
请复制上面的链接,放置到您发表文章时的相应界面中。

评论(3)

可以更进一步,根据客户端编码来调整iconv的参数。
不然Big5或者日韩语系还会有问题。

平生一笑 于 July 14, 2005 8:58 PM

这样是可以,不过对付超过40个字符的附件时,同样会出现问题

发表评论

最新发布

世界地球日
猛然间看到Google换了Logo,肯定是有什么大日子发生。果然,今天是一年…
Google提供域名Whois信息查询服务
昨天在DRL看到有坛友发此信息,追究起来,出处应该还是GSeeker,正好这…
入吾彀中
【解释】:彀:张满弓弩;彀中:指箭能射及的范围,比喻牢笼,圈套。进入了我的弓箭射…