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