dedecms生成中文名html文件

2010-03-16 21:32 0 条评论 »

dedecms生成文件用到了的函数在/include/dedetag.class.php中

//把分析模板输出为文件
function SaveTo($filename)
{
   $fp = @fopen($filename,”w”) or die(”DedeTag Engine Create File False”.$filename);
   fwrite($fp,$this->GetResult());
   fclose($fp);
}

windows下,fopen()创建一个中文文件名的文件时问题就出来了,文件名都是乱码。原因是Windows默认的文字编码是ansi。

解决方法是用iconv函数。

我用的是utf-8的dedecms版本。把utf-8转成gb2312就可以避免中文文件名为乱码。

function SaveTo($filename)
 {
  $filename=iconv(’utf-8′,’gb2312′,$filename);
  $fp = @fopen($filename,”w”) or die(”DedeTag Engine Create File False”);
  fwrite($fp,$this->GetResult());
  fclose($fp);
 }

按如上更改函数就可以了。windows下不能用这几种符号\/:*?’<>|,要注意屏蔽。

评论