您的位置:首页 > 编程语言 > PHP开发

PHP Excel类Spreadsheet_Excel_Writer 导出UTF8中文乱码的解决方法。

2009-11-04 22:47 1216 查看
问题:乱码

代码

<?php
require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('test.xls');
$workbook->setVersion(8);
$worksheet =& $workbook->addWorksheet('乱码');
$russian = "内容测试";
$worksheet->setInputEncoding('utf-8');
$worksheet->write(1, 0, $russian);
$workbook->close();
?>


这个代码出现工作表名乱码

Debug

1、注释掉第二行$workbook
->
setVersion
(
8
);

乱码不但没解决,内容也乱码了。$worksheet->setInputEncoding('utf-8');不起任何作用。但有新发现,就是乱码秒象这前那样,有点象是UTF8转成GBK的样子。

2、不注释第2行,只把文件保存成ANSI编码,无效,内容不见了。表名还是乱码

3、注释掉第二行$workbook
->
setVersion
(
8
);全部正常,好象问题就这么解决了。细想没那么简单

页面是否允许
GBK,比如整站UTF8时

Excel为UTF8编码时,Linux就是

这样一来还是会乱码。

解决办法

去掉$workbook
->
setVersion
(
8
);

文件编码使用
utf-8

根据用户系统进行转码

转码函数

function encoding($str){
if(strops($_SERVER("HTTP_USER_AGENT"),"Windows") !== false)
$str = iconv("utf8","gb2312",$str);
return $str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐