我正在尝试用PHP读取XLSX文件。准确地使用gneustaetter/XLSXReader。但是,这些XLSX文件是由不同的公司使用不同的软件生成的。所以我想检查一下他们是否有正确的编码,并且总是找到UTF-8。
因此我的问题如上: XLSX文件是按照定义编码的UTF-8吗?或者是否存在可能破坏我正在处理的导入脚本的异常?
答案 0 :(得分:3)
假设它始终是UTF-8是危险的。我只是将您的期望与XML标题中描述的XML相关联。根据我的经验,Windows-1252编码数据会在您最不期望的时候出现。您可以更仔细地查看XLSX specification以了解详情。
这是一个Chromium bug relating to a Windows-1252 encoded XLSX file,所以这些似乎存在于野外。也许它们是由Microsoft Office以外的程序生成的。随着LibreOffice变得越来越流行,可能没有最强大的XLSX支持的旧版本最终可能会与您的代码进行交互。您可能不希望在您的代码中出现这样的错误。
尽管有一个拒绝无效编码的具体原因,但请尽量保持适应性。严格定义的JSON是UTF-8。根据定义,XLSX似乎是XML,但编码并不是固定的。 UTF-8似乎只是默认约定。