如何通过Perl脚本编写带有特殊字符的excel文件?

时间:2014-01-21 12:57:24

标签: excel perl

我正在通过perl代码编写Excel文件。当我在XML文件中插入数据并在任何浏览器中查看时,我看到带有特殊字符的正确数据,但是当我在Excel文件中写入相同的数据时,它显示垃圾字符。 例如: (来自浏览器上的XML文件的单词)Gràcia - (来自Excel文件的单词)Grícia

我使用'Spreadsheet :: XLSX'来读取excel,使用'Excel :: Writer :: XLSX'来编写excel。

还需要帮助找到excel字段的编码格式。

你知道吗?提前谢谢。

1 个答案:

答案 0 :(得分:3)

这看起来非常像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标志”。