用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3308|回复: 6
收起左侧

[HELP] PHPExcel在Linux服务器导出乱码的问题?

[复制链接]
发表于 2013-8-14 12:09:51 | 显示全部楼层 |阅读模式
请问大家有没有遇到这种情况!
PHPExcel做导出数据的时候!
windows服务器下没有问题,可以导出!
但是上传到linux服务器就出事了,导出到excel表格内中文都是乱码,而且连分页页码都被导出了!
请问有遇到过这个问题的同学怎么样才能解决呢?
发表于 2013-8-14 15:14:21 | 显示全部楼层
应该是程序中间有报错了
 楼主| 发表于 2013-8-15 14:41:03 | 显示全部楼层
jeongee 发表于 2013-8-14 15:14
应该是程序中间有报错了

可是上传到两个都是windows的服务器就没问题,一传到linux服务器就导出乱码{:soso_e117:}...
发表于 2013-8-16 10:09:37 | 显示全部楼层
因为不了解详情,所以只能推测给出以下
建议:
1.在导出前调用ob_end_clean()清除并关闭输出缓存
2.在针对中文的地方用iconv将UTF-8转成GBK编码试试
一条一条的试,不要2条一起上。
因为刚做完phpexcel的导出功能,所以稍微了解一些,但也是在windows下测试的,只能推测linux下的解决方案
 楼主| 发表于 2013-8-20 17:29:55 | 显示全部楼层
bananaplan 发表于 2013-8-16 10:09
因为不了解详情,所以只能推测给出以下
建议:
1.在导出前调用ob_end_clean()清除并关闭输出缓存

你好!查了网上一些方法,好像就是要清除缓冲区才能正常!但是,请问一下,我加了ob_end_clean()后!报了这样的错误:
Message: ob_end_clean() [ref.outcontrol]: failed to delete buffer. No buffer to delete.
请问能这么解决呢?
发表于 2013-8-26 15:44:33 | 显示全部楼层
、林神奇 发表于 2013-8-20 17:29
你好!查了网上一些方法,好像就是要清除缓冲区才能正常!但是,请问一下,我加了ob_end_clean()后!报了 ...

首先,如果你用了ob_end_clean()后,不会出现乱码情况了,那么,恭喜你,你的问题已经解决了。
只有报的那个错误,你看清楚了,那只是一个Message信息,可以通过php.ini或者ini_set()或者在所调用的方法前加@(即:@ob_end_clean())解决,就不会出现上述信息了。
 楼主| 发表于 2013-8-27 15:54:37 | 显示全部楼层
bananaplan 发表于 2013-8-26 15:44
首先,如果你用了ob_end_clean()后,不会出现乱码情况了,那么,恭喜你,你的问题已经解决了。
只有报的 ...

郁闷,虽然没有报错误了,但是导出来还是乱码{:soso_e127:}
不然只能叫客户换服务器了{:soso_e105:}

本版积分规则