我在运行PHP 5.6的受限服务器上使用PHPExcel。
我有一些日语字符,我试图将其包含在CSV和Excel输出中。看到HTML或PDF中也有相同输出的潜力我使用PHPExcel构建所有数据,只是根据请求更改编写器。
我设法使用$objWriter->setUseBOM(true)
成功地在Excel中导出CSV导出,但是导出为Excel文件我将日文字符替换为废话,例如:
éÂÂä¿¡ãÂÂãÂÂãÂÂIDã¡ã¼ã«ã«IDã®è¨Âè¼ÂãÂÂãªãÂÂ
从我读过的内容中,我最好的选择是将字符串转换为UTF-16LE,但是,我无法访问mb_string
或iconv
而我是&#39我努力想知道我怎么能解决这个问题。我想知道Excel2007是否会出现同样的问题,但我无法访问php_zip
或zlib
以使用PCLZip。我想我搞砸了。
有没有人知道如何让Excel正确解释这些字符?
答案 0 :(得分:0)
就我而言,问题是服务器上缺少mb_convert_encoding
或iconv
。没有这些,从UTF-8到Biff8的编码(见PHPExcel_Shared_String::UTF8toBIFF8UnicodeLong
)并没有正确发生。
在这种情况下,PHPExcel_Shared_String::ConvertEncoding
只返回原始字符,这在Biff8中没有意义 - 因此遇到了问题。
需要编写一个独立的转换器,这是可能的,但对于我们可以简单地回退到CSV的特殊情况而言是过度的。如果其他人遇到此问题,我会首先检查是否存在mb_convert_encoding
或iconv
,如果可能,请安装这些。