Excel是很坑爹的,10W个字符里面只要有一个字符解析不了,就全部都会乱码。
基于以上观点,导出的格式一定要是UTF8格式,UTF8的识别度最高。
但是项目中发现UTF8格式下偶尔也会出现乱码,经测试在列多的情况下会出现。
然后尝试给UTF8加上BOM,想告诉Excel这就是UTF8,不要用其它字符集解码搞事情。加上后乱码消失!
总结:导出的数据格式,需要用其它第三方非文本软件打开时,要用识别度最高的UTF8编码,且要加上BOM信息。
头信息:
header("Content-type: text/html; charset=utf-8"); header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename={$name}.xls"); header("Pragma: no-cache"); header("Expires: 0"); echo chr (239) . chr (187 ) . chr ( 191 ); //设置为bom格式