最近项目中要导出excel,于是使用了phpoffice/phpspreadsheet
,但当导出xlsx
格式时抛出warning:
PHP Warning: htmlentities(): charset `gbk' not supported, assuming utf-8 in ...
导致导出的xlsx无法打开,提示格式不正确,因为这些warning随着ob缓冲区写入了文件。
虽然项目是gbk编码,但是将字符转为utf-8后仍然出现这个Warning。经过一番排查测试,发现于php.ini的default_charset
配置有关。
于是使用ini_set('default_charset', 'UTF-8');
,Warning消失了,文件可以正常打开了
这个问题仅仅是gbk编码项目会遇到,由于目前维护的这个项目太古老了,没有办法,新项目尽量使用utf-8吧