php execl 乱码,phpexcel乱码
之前做的一个项目,utf8编码的,导出excel正常
现在的一个项目,也是utf8的,把之前的代码拷过来
输出时居然出现乱码
想不明白是什么原因
所有文件的编码都是utf8的
回复讨论(解决方案)
都改成gbk的,excel的默认编码就是gbk吧?
否者转码成gbk的
之前utf-8又没问题?
http://blog.csdn.net/ohmygirl/article/details/6907946
这是我之前写的phpExcel乱码的总结,你可以看看,希望对你有帮助。
应检查是否与 BOM 头有关
版主老大总是会提到BOM,在网上copy了一段代码.if (isset($_GET['dir'])){ //设置文件目录 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..'){ if (!is_dir($basedir."/".$file)) { echo "filename: $basedir/$file ".checkBOM("$basedir/$file")."
"; }else{ $dirname = $basedir."/".$file; checkdir($dirname); } } } closedir($dh); } } function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { if ($auto == 1) { $rest = substr($contents, 3); rewrite ($filename, $rest); return ("BOM found, automatically removed."); } else { return ("BOM found."); } } else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); }
全是英文跟数字也会有乱码么?
把你代码贴来看看。
我用的是官方的样例代码
总不会有错吧// Create new PHPExcel object$objPHPExcel = new PHPExcel();// Set properties$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file");// Add some data$objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'Hello') ->setCellValue('B2', 'world!') ->setCellValue('C1', 'Hello') ->setCellValue('D2', 'world!');// Miscellaneous glyphs, UTF-8$objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A4', 'here') ->setCellValue('A5', 'that');// Rename sheet$objPHPExcel->getActiveSheet()->setTitle('Simple');// Set active sheet index to the first sheet, so Excel opens this as the first sheet$objPHPExcel->setActiveSheetIndex(0);// Redirect output to a client’s web browser (Excel5)header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename="01simple.xls"');header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');
随便说一下我用的是thinkphp框架,跟这个应该没啥关系吧
斑竹的回复看了么,先检查下文件是否有bom头。
header('Content-Type: application/vnd.ms-excel');
这句加上编码
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
斑竹的回复看了么,先检查下文件是否有bom头。
header('Content-Type: application/vnd.ms-excel');
这句加上编码
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
上一句有了,下一句加上了还是不行
用你的代码测试了,没有乱码。
检查下你的文件格式。另存为utf-8无bom格式的。
难道是我的项目有问题?
难道是我的项目有问题?
既然代码没有问题,那么原因可能有两个:
1.你的文件有bom头,导致excel输出前已经有别的内容输出了,就会造成错乱。
2.phpExcel版本问题,最新的应该是1.7.6吧?
或者还有可能,你的代码除了这些还有其他的代码,而那些代码又输出或者有错误。。
把UTF8编码该为GB2312试一下
既然代码没有问题,那么原因可能有两个:
1.你的文件有bom头,导致excel输出前已经有别的内容输出了,就会造成错乱。
2.phpExcel版本问题,最新的应该是1.7.6吧?
或者还有可能,你的代码除了这些还有其他的代码,而那些代码又输出或者有错误。。
问题找到了,竟然是改写的tp的rbac中的一句引用文件的问题,原来是类开始引用,现改为在方法内部引用就没事了,谢谢
如果以上方法还是出现乱码,则可能是输出缓冲区中有其他多余的内容,在php文件中设置excel内容之间清理一下输出缓冲区吧:
都不能用啊!!!!!
我也碰到乱码问题,连新建一个空的excel文件也有乱码,按照20楼的方法清空一下缓冲区才终于解决了!!!
也有可能是之前有输出信息,如果是elcel是输出到浏览器的话,之前不能有任何输出的,否则格式不对就会有错
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php execl 乱码,phpexcel乱码相关推荐
- ASP+Access中文乱码的解决方法,ASP中文乱码,asp乱码问题
确保编码声明正确(例:时尚淘女之家http://www.tao36524.com) 如果您使用的是国外空间,默认是西欧而不是GB2312,你可以通过强制为GD2312的方式! 在数据提取页面的第一行代 ...
- linux db2乱码,DB2乱码(开始和结束,字符串中间没有好的办法)
针对汉字乱码 末尾乱码:末尾第二个字节的ASCII的值大于224 或 末尾第一个字节的ASCII的值大于224 去掉办法:case when length(colname)>1 and asci ...
- 水晶报表乱码中文乱码问题(收藏)
水晶报表乱码中文乱码问题 - Crystal reports 原因1:CR輸出的漢字格式不对(簡體還是繁體),簡體要先在區域設成(中國),然後在cr裡設字體為"宋體"即可 原因2: ...
- php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法
使用phpexcel类库导出excel文件,文件名为中文时,在chrome浏览器下导出正常,在IE内核浏览器下导出文件名显示乱码,解决办法就是通过iconv函数转换编码,从utf-8转为gb2312, ...
- php导出服务器表格乱码,phpExcel导出, 在本地正常,在服务器乱码解决办法
phpExcel导出, 在本地正常,在服务器乱码 如题,在服务器运行时.... 重复一下,在本地运行是正常的,放上服务就成这样了,代码如下... $excel=new \PHPExcel(); do{ ...
- php运行出来一堆乱码,一堆乱码中找到的~_php
php代码:-------------------------------------------------------------------------------- function Heig ...
- 【IntelliJ IDEA】中文乱码问题 ( 代码乱码 | 编译乱码 | 控制台乱码 )
文章目录 I . 乱码类型说明 II . 解决代码乱码问题 III . 编译时乱码解决 IV . 控制台乱码解决 I . 乱码类型说明 使用 IntelliJ IDEA 开发 Java 程序时 , 会 ...
- go mysql 乱码_MySQL 乱码之我见
先着重介绍一下mysql的字符集,这样能对产生mysql的根源有一个了解. mysql 的字符集支持有两个方面:字符集(Character set)和排序方式(Collation).另外对于字符集的支 ...
- tomcat java 参数乱码_javaweb乱码(tomcat服务器)
get提交 : post提交: request.setCharacterEncoding("GBK") + filter: View Code packagecom.sung ...
最新文章
- ARC 没有自动释放内存
- python中判断列表数据类型_浅谈Python数据类型判断及列表脚本操作
- ASP.NET Aries JSAPI 文档说明:AR.DataGrid、AR.Dictionary
- LinkedBlockingDeque源码
- sbt安装、配置、運行(scala sbt helloworld)
- (转)javascript匿名函数
- Oracle 10gR2 Psu 相关
- 【Vijos1180】选课
- 销售转向java编程的开始之路
- (译)SDL.NET Surfaces 相关介绍
- cocos creator 文字描边效果
- Excel技能培训之十四 统计函数count,countif,counta,countblank,large,small,average,max,min
- 使用PDFObject添加将本地磁盘pdf文件在前端页面展示
- Xshell串口连接
- 国家级非遗传承人高清旺《四大美人》皮影数字藏品惊艳亮相!
- python autohotkey_Python pyautogui.hotkey方法代码示例
- jquery的事件命名空间详解
- 利用python绘制勾股定理赵爽弦图
- Python爬虫获取企查查公开的企业信息
- Linux的route命令