【发布时间】:2019-07-05 06:47:37
【问题描述】:
我正在编写必须对 CSV 文件进行一些操作的脚本,但我不知道文件是否会使用 utf-8 或 utf-16 进行编码。如何检查给定的 csv 文件是否包含 utf-16 BOM?
【问题讨论】:
-
听起来可能是不可能的——见How to determine the encoding of text?
-
UTF-16 并不多用于交换数据。尝试使用编辑器(或浏览器)并检查不同的编码:当您看到好的数据时,它可能是正确的编码。如果您看到许多 00 字节,则几乎可以肯定是 UTF-16(或其他 16 位或更多位编码)。 [一个csv文件需要有逗号,所以U+002C,所以在这种情况下你必须有00字节]
-
告诉发件人您只接受 UTF-8(或其他)可能更直接。或者接受字符编码不与文件分离的文件格式,例如 .xlsx。
标签: python encoding utf-8 utf-16 byte-order-mark