2017-07-19 3 views
-1

私はPHPでXLSXファイルを読み込もうとしています。 gneustaetter/XLSXReaderを正確に使用してください。ただし、これらのXLSXファイルは、異なるソフトウェアを使用して、異なる会社によって生成されます。だから私は彼らが正しいエンコーディングを持っていることを確認したいと思って、いつもUTF-8を見つけただけです。XLSXファイルはUTF-8で定義されていますか?

上記のように私の質問 XLSXファイルはUTF-8で定義されていますか?または、私が取り組んでいるインポートスクリプトを破る可能性のある例外がありますか?

+0

XMLであるため、おそらくXMLヘッダーに文字セット識別子があります。 – tadman

+0

@tadmanありますが、結果的に私が見つけることができるすべてのファイルでutf-8に設定されます。問題は、XLSXファイル自体を呼び出すためにUTF-8でなければならないかどうかです。 – Marco

+0

私は、そのタグをインポートする前に必ず確認することをお勧めします。しかし、お客様がWindows 1252ファイルを私に送った場合、これが有効なExcelファイルではないことを拒否できますか? – Marco

答えて

2

それは常に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は単にデフォルトの規約であるようです。

関連する問題