我正在通过perl代码编写Excel文件。当我在XML文件中插入数据并在任何浏览器中查看时,我看到带有特殊字符的正确数据,但是当我在Excel文件中写入相同的数据时,它显示垃圾字符。 例如: (来自浏览器上的XML文件的单词)Gràcia - (来自Excel文件的单词)Grícia
我使用'Spreadsheet :: XLSX'来读取excel,使用'Excel :: Writer :: XLSX'来编写excel。
还需要帮助找到excel字段的编码格式。
你知道吗?提前谢谢。答案 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标志”。