之前做的一个项目,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乱码相关推荐

  1. ASP+Access中文乱码的解决方法,ASP中文乱码,asp乱码问题

    确保编码声明正确(例:时尚淘女之家http://www.tao36524.com) 如果您使用的是国外空间,默认是西欧而不是GB2312,你可以通过强制为GD2312的方式! 在数据提取页面的第一行代 ...

  2. linux db2乱码,DB2乱码(开始和结束,字符串中间没有好的办法)

    针对汉字乱码 末尾乱码:末尾第二个字节的ASCII的值大于224 或 末尾第一个字节的ASCII的值大于224 去掉办法:case when length(colname)>1 and asci ...

  3. 水晶报表乱码中文乱码问题(收藏)

    水晶报表乱码中文乱码问题 - Crystal reports 原因1:CR輸出的漢字格式不对(簡體還是繁體),簡體要先在區域設成(中國),然後在cr裡設字體為"宋體"即可 原因2: ...

  4. php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法

    使用phpexcel类库导出excel文件,文件名为中文时,在chrome浏览器下导出正常,在IE内核浏览器下导出文件名显示乱码,解决办法就是通过iconv函数转换编码,从utf-8转为gb2312, ...

  5. php导出服务器表格乱码,phpExcel导出, 在本地正常,在服务器乱码解决办法

    phpExcel导出, 在本地正常,在服务器乱码 如题,在服务器运行时.... 重复一下,在本地运行是正常的,放上服务就成这样了,代码如下... $excel=new \PHPExcel(); do{ ...

  6. php运行出来一堆乱码,一堆乱码中找到的~_php

    php代码:-------------------------------------------------------------------------------- function Heig ...

  7. 【IntelliJ IDEA】中文乱码问题 ( 代码乱码 | 编译乱码 | 控制台乱码 )

    文章目录 I . 乱码类型说明 II . 解决代码乱码问题 III . 编译时乱码解决 IV . 控制台乱码解决 I . 乱码类型说明 使用 IntelliJ IDEA 开发 Java 程序时 , 会 ...

  8. go mysql 乱码_MySQL 乱码之我见

    先着重介绍一下mysql的字符集,这样能对产生mysql的根源有一个了解. mysql 的字符集支持有两个方面:字符集(Character set)和排序方式(Collation).另外对于字符集的支 ...

  9. tomcat java 参数乱码_javaweb乱码(tomcat服务器)

    get提交  : post提交:  request.setCharacterEncoding("GBK")  + filter: View Code packagecom.sung ...

最新文章

  1. ARC 没有自动释放内存
  2. python中判断列表数据类型_浅谈Python数据类型判断及列表脚本操作
  3. ASP.NET Aries JSAPI 文档说明:AR.DataGrid、AR.Dictionary
  4. LinkedBlockingDeque源码
  5. sbt安装、配置、運行(scala sbt helloworld)
  6. (转)javascript匿名函数
  7. Oracle 10gR2 Psu 相关
  8. 【Vijos1180】选课
  9. 销售转向java编程的开始之路
  10. (译)SDL.NET Surfaces 相关介绍
  11. cocos creator 文字描边效果
  12. Excel技能培训之十四 统计函数count,countif,counta,countblank,large,small,average,max,min
  13. 使用PDFObject添加将本地磁盘pdf文件在前端页面展示
  14. Xshell串口连接
  15. 国家级非遗传承人高清旺《四大美人》皮影数字藏品惊艳亮相!
  16. python autohotkey_Python pyautogui.hotkey方法代码示例
  17. jquery的事件命名空间详解
  18. 利用python绘制勾股定理赵爽弦图
  19. Python爬虫获取企查查公开的企业信息
  20. Linux的route命令

热门文章

  1. 通过Everything工具实现两台电脑之间的文件传输
  2. Android获取物理键盘按键的keycode
  3. 惊!亚马逊封号潮提前结束;50%海外电商零售市场属于独立站;TikTok重返印度…|洞悉跨境
  4. LVDS差分信号深度详解
  5. Java教程,Java基础教程,2020年全新Java基础学习教程
  6. 超实用开发工具分享!让你见识下开发者的兵器库长什么样!
  7. 手机OTA升级是什么
  8. Spring Boot 2 中通过 WebSocket 发送 STOMP 消息
  9. EarMaster 7中文版来啦
  10. 基于 FPGA 的 HDMI/DVI 显示