【发布时间】:2015-06-03 04:38:21
【问题描述】:
我已经成功使用 PHPExcel 几个月了。现在我有一些用户正在将 Unicode 输入到他们的数据中,现在他们的报告没有在 Excel 中打开。
Excel 2010 给出的确切错误是:
Excel 在“blahblahblah.xlsx”中发现了不可读的内容。是否要恢复此工作簿的内容?如果您信任此工作簿的来源,请单击“是”。
单击是...
文件已损坏,无法打开。
当我查看文件时(转到 .zip 并打开 .xml 内容),我可以看到所有内容都已正确格式化。 UTF-8 字符显示在我的文本编辑器中(带重音的“o”显示为 xC3 作为单个项目),但这些编码似乎杀死了 Excel。
我注意到在单元格和工作表名称中都使用了 Unicode。
【问题讨论】:
-
phpexcel.codeplex.com/wikipage?title=FAQ "字符编码似乎有问题... PHPExcel中的所有文本都必须使用UTF-8编码。如果脚本使用不同的编码,则可以使用 PHP 的 iconv() 函数转换文本。"
-
xC3表示单个 0xC3 字节,它不是有效的 UTF-8 序列。这将使 XML 解析器无法读取整个文件(例如,尝试将其加载到 Web 浏览器中,您可能会遇到错误)。您需要确保所有字符串都是 UTF-8。