我正在通过perl代码编写Excel文件。当我在 XML 文件中插入数据并在任何浏览器中查看时,我看到带有特殊字符的正确数据,但当我在 Excel 文件中写入相同的数据时,它显示垃圾字符。 例如: (浏览器上 XML 文件中的单词)Gràcia -(Excel 文件中的单词)Gré cia
我使用“Spreadsheet::XLSX”读取 Excel,使用“Excel::Writer::XLSX”写入 Excel。
还需要帮助查找 Excel 字段的编码格式。
你有什么想法吗?提前致谢。
最佳答案
这看起来很像 UTF-8 到 iso-8859-1 的转换出错 - 看起来像一个包含 UTF-8 的字符串,但没有标记为 UTF-8,正在传递给 $worksheet ->write()
。自 http://metacpan.org/pod/Excel::Writer::XLSX#UNICODE-IN-EXCEL声称可以正确处理 unicode,这似乎是您的输入字符串的问题,而不是 write 方法本身的问题。
由于您没有发布任何代码,也没有告诉我们您的字符串来自哪里,所以我无法判断为什么字符串标记不正确。
你也许可以逃脱
Encode::_utf8_on($str)
在将字符串传递给 $worksheet->write()
之前,但这也可能会破坏其他内容,如果不是所有字符串都是真正的 utf-8。基本上答案是“在读取字符串时正确获取字符串上的 utf-8 标志”。
关于excel - 如何通过Perl脚本编写带有特殊字符的Excel文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21258823/