在Excel5中编码日语字符的问题输出PHPExcel

时间:2017-06-06 09:31:44

标签: php excel csv phpexcel phpexcel-1.8.0

我在运行PHP 5.6的受限服务器上使用PHPExcel。

我有一些日语字符,我试图将其包含在CSV和Excel输出中。看到HTML或PDF中也有相同输出的潜力我使用PHPExcel构建所有数据,只是根据请求更改编写器。

我设法使用$objWriter->setUseBOM(true)成功地在Excel中导出CSV导出,但是导出为Excel文件我将日文字符替换为废话,例如:

éÂÂä¿¡ãÂÂãÂÂãÂÂIDã¡ã¼ã«ã«IDã®è¨Âè¼ÂãÂÂãªãÂÂ

从我读过的内容中,我最好的选择是将字符串转换为UTF-16LE,但是,我无法访问mb_stringiconv而我是&#39我努力想知道我怎么能解决这个问题。我想知道Excel2007是否会出现同样的问题,但我无法访问php_zipzlib以使用PCLZip。我想我搞砸了。

有没有人知道如何让Excel正确解释这些字符?

1 个答案:

答案 0 :(得分:0)

就我而言,问题是服务器上缺少mb_convert_encodingiconv。没有这些,从UTF-8到Biff8的编码(见PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong)并没有正确发生。

在这种情况下,PHPExcel_Shared_String::ConvertEncoding只返回原始字符,这在Biff8中没有意义 - 因此遇到了问题。

需要编写一个独立的转换器,这是可能的,但对于我们可以简单地回退到CSV的特殊情况而言是过度的。如果其他人遇到此问题,我会首先检查是否存在mb_convert_encodingiconv,如果可能,请安装这些。