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

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

我正在使用“Spreadsheet :: XLSX”阅读excel和“Excel :: Writer :: XLSX”来编写excel。

还需要帮助findexcel字段的编码格式。

你有什么主意吗? 提前致谢。

这似乎非常像UTF-8 iso-8859-1转换出错 – 看起来像一个包含UTF-8的string,但没有标记为UTF-8,正在传递给$worksheet->write() 。 由于http://metacpan.org/pod/Excel::Writer::XLSX#UNICODE-IN-EXCEL声称正确处理unicode,它似乎是您的inputstring,而不是写入方法本身的问题。

由于您不会发布任何代码,也不要告诉我们您的string来自哪里,我无法分辨为什么string没有正确标记。

你可能会逃脱

 Encode::_utf8_on($str) 

在将string传递给$worksheet->write()之前,如果不是所有的string都是utf-8的话,这也可能会破坏其他的东西。 基本上,答案是“当你阅读它们时,在你的string上得到utf-8标志”。