XLSX文件是否默认为UTF-8编码?

8
我正在尝试使用PHP读取XLSX文件,确切地说是使用gneustaetter/XLSXReader。然而,这些XLSX文件由不同公司使用不同的软件生成。因此,我想检查它们是否具有正确的编码,并且总是只找到UTF-8。
因此,我的问题如上所述: XLSX文件是否根据定义采用UTF-8编码?或者是否存在可能破坏我正在使用的导入脚本的异常情况?

它们是XML,因此XML头中可能有字符集标识符。 - tadman
@tadman,有的,但我在找到的所有文件中都将其设置为UTF-8。问题是它是否必须是UTF-8才能称为XLSX文件。 - Marco
@tadman,感谢您提供的链接,您可以将它们发布为答案,我会接受它。 - Marco
顺便说一下,如果您给我点“踩”,请说明原因。 - Marco
我觉得有人只是因为问题并不是直接与编程有关而感到沮丧。 - tadman
显示剩余4条评论
1个回答

5
假设它总是UTF-8可能存在风险。最好按照XML头中XML描述的方式进行操作。在我的经验中,Windows-1252编码的数据总是在你最不希望出现的时候出现。你可以更仔细地检查XLSX规范以了解更多信息。这里有一个与Windows-1252编码的XLSX文件相关的Chromium bug,因此这些似乎在野外存在。可能由于LibreOffice等软件变得越来越流行,那些可能没有最强大的XLSX支持的旧版本可能会与您的代码交互。除非您有拒绝无效编码的具体理由,否则请尽可能通融。严格来说,JSON是UTF-8。XLSX似乎是XML,但编码并不固定。UTF-8似乎只是默认约定。

这个页面似乎也表明了它是XML头中描述的内容... 如果你将文件扩展名改为txt或在文本编辑器中打开,你应该能够看到... https://community.alteryx.com/t5/Alteryx-Designer-Knowledge-Base/How-to-check-for-encoding-or-formatting-issues-with-Excel/ta-p/397305 - andrew pate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接