如何解决phpexcelreader导出excel中文乱码?
解决php excel reader导出excel中文乱码的方法:1、如果不使用dump函数,可以通过修改【_defaultEncoding】变量解决问题;2、如果使用dump函数导出excel,需要修改htmlentities函数解决。
10年的南开网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整南开建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“南开网站设计”,“南开网站推广”以来,每个客户项目都认真落实执行。
解决php excel reader导出excel中文乱码的方法:
在下载完php excel reader2.21后,请解压至你的PHP环境配置的运行目录下,打开example.php,首先来看
1$data=new Spreadsheet_Excel_Reader("example.xls");
此语句是用来创建一个php导出excel的实例,在excel_reader2.php文件中我们可以找到此php excel reader类的构造函数原型
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中文乱码有两种方法。
php excel reader导出excel中文乱码解决方法一:
1$data=new Spreadsheet_Excel_Reader("example.xls");
改为
1$data=new Spreadsheet_Excel_Reader("example.xls",true,"GB2312");
php excel reader导出excel中文乱码解决方法二:
打开excel_reader2.php,找到
1var$_defaultEncoding="UTF-8";
修改为
1var$_defaultEncoding="GB2312";
即可解决php excel reader导出excel乱码的问题。
那为什么通过上述教程修改后,如果在example.xls中添加中文后example.php仍然输出乱码呢?
这是因为其调用了php excel reader类中的dump
函数,此函数是用来将导出的excel文件内容以HTML的形式输出,而问题恰恰是由于这个函数中htmlentities函数作怪,htmlentities函数是用来把字符转换为HTML实体的,原型如下
htmlentities(string,quotestyle,character-set)
其默认的字符集为ISO-8859-1,所以当使用php excel reader的dump函数导出excel出现中文乱码时,
解决方法一:
1$val=htmlentities($val);
修改为
1$val=htmlentities($val,ENT_COMPAT,"GB2312");
解决方法二:
1$val=htmlentities($val);
修改为
1$val=htmlspecialchars($val);
php excel reader导出excel中文乱码解决方法总结
如果不使用dump函数导出excel,可以通过修改_defaultEncoding
变量或者通过new Spreadsheet_Excel_Reader(excel文件名,true,”GB2312″);解决导出excel乱码问题,如果使用dump函数以HTML的方式导出excel,需要修改htmlentities函数解决导出excel乱码问题。
本文名称:如何解决phpexcelreader导出excel中文乱码?
标题来源:http://scyanting.com/article/cpjdpc.html