html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

php excel reader2.21导出excel中文乱码解决方法说明_PHP教程_编程技术

[ ] 已经帮助:人解决问题

  之前我的PHP教程博客访友询问使用php excel reader2.21导出excel时中文出现乱码如何解决,现我说明下php excel reader导出excel中文乱码的解决方法,希望对使用php excel reader导出excel的朋友有所帮助。kkdHTML5中文学习网 - HTML5先行者学习网

  php excel reader介绍kkdHTML5中文学习网 - HTML5先行者学习网

  php excel reader是一个读取Excel xsl文件内容的一个php excel类,目前最新版本是php excel reader2.21,网上可自行搜索,sourceforge上的php excel reader下载地址我估计是初始版,本教程所介绍的php excel reader导出excel中文乱码解决方法是基于php excel reader2.21,故不同版本php导出excel乱码的解决方法是有区别的,请务必下载正确的php excel reader版本。kkdHTML5中文学习网 - HTML5先行者学习网

  如何解决php excel reader2.21导出excel中文乱码?kkdHTML5中文学习网 - HTML5先行者学习网

  在下载完php excel reader2.21后,请解压至你的PHP环境配置的运行目录下,打开example.php,首先来看kkdHTML5中文学习网 - HTML5先行者学习网

1
$data = new Spreadsheet_Excel_Reader("example.xls");

  此语句是用来创建一个php导出excel的实例,在excel_reader2.php文件中我们可以找到此php excel reader类的构造函数原型kkdHTML5中文学习网 - HTML5先行者学习网

1
Spreadsheet_Excel_Reader($file='',$store_extended_info=true,$outputEncoding='')

  顾名思义,php excel reader导出excel文件内容的编码类型是通过$outputEncoding参数来指定的,默认的php excel reader导出excel的编码类型是通过变量_defaultEncoding设定,默认为UTF-8,所以通常解决php excel reader导出excel中文乱码有两种方法。kkdHTML5中文学习网 - HTML5先行者学习网

  php excel reader导出excel中文乱码解决方法一kkdHTML5中文学习网 - HTML5先行者学习网

1
$data = new Spreadsheet_Excel_Reader("example.xls");

改为kkdHTML5中文学习网 - HTML5先行者学习网

1
$data = new Spreadsheet_Excel_Reader("example.xls",true,"GB2312");

  php excel reader导出excel中文乱码解决方法二:打开excel_reader2.php,找到kkdHTML5中文学习网 - HTML5先行者学习网

1
var $_defaultEncoding = "UTF-8";

修改为kkdHTML5中文学习网 - HTML5先行者学习网

1
var $_defaultEncoding = "GB2312";

  即可解决php excel reader导出excel乱码的问题。kkdHTML5中文学习网 - HTML5先行者学习网

  那为什么通过上述教程修改后,如果在example.xls中添加中文后example.php仍然输出乱码呢?这是因为其调用了php excel reader类中的dump函数,此函数是用来将导出的excel文件内容以HTML的形式输出,而问题恰恰是由于这个函数中htmlentities函数作怪,htmlentities函数是用来把字符转换为HTML实体的,原型如下kkdHTML5中文学习网 - HTML5先行者学习网

1
htmlentities(string,quotestyle,character-set)

  其默认的字符集为ISO-8859-1,所以当使用php excel reader的dump函数导出excel出现中文乱码时,kkdHTML5中文学习网 - HTML5先行者学习网

  解决方法一kkdHTML5中文学习网 - HTML5先行者学习网

1
$val = htmlentities($val);

修改为kkdHTML5中文学习网 - HTML5先行者学习网

1
$val = htmlentities($val,ENT_COMPAT,"GB2312");

  解决方法二kkdHTML5中文学习网 - HTML5先行者学习网

1
$val = htmlentities($val);

修改为kkdHTML5中文学习网 - HTML5先行者学习网

1
$val = htmlspecialchars($val);

  php excel reader导出excel中文乱码解决方法总结kkdHTML5中文学习网 - HTML5先行者学习网

  如果不使用dump函数导出excel,可以通过修改_defaultEncoding变量或者通过new Spreadsheet_Excel_Reader(excel文件名,true,”GB2312″);解决导出excel乱码问题,如果使用dump函数以HTML的方式导出excel,需要修改htmlentities函数解决导出excel乱码问题。kkdHTML5中文学习网 - HTML5先行者学习网

  至此,使用php excel reader2.21导出excel中文乱码时如何解决就介绍完了。kkdHTML5中文学习网 - HTML5先行者学习网

  :PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。kkdHTML5中文学习网 - HTML5先行者学习网

kkdHTML5中文学习网 - HTML5先行者学习网
kkdHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助