我在记事本中创建了一个只包含em破折号的文件,并使用Unicode (big endian)
编码保存了该文件。在记事本中,这会显示一个短划线。当我打开文件并在Python 3 / IDLE中读取它时如此:
open(file_path, encoding="UTF-16-BE").read()
我明白了:
'\ufeff—'
以字节表示,文件内容为:
b'\xfe\xff \x14'
不应该处理BOM而不显示它吗?我查看了Python的可用编码,其中没有像UTF_16_BE_SIG
那样的UTF_8_SIG
。db.collection.aggregate([
{
$lookup: {
...
}
},
{
$limit: 1
}
])
。这里发生了什么,我该如何妥善处理?
答案 0 :(得分:2)
指定UTF-16的字节顺序时,禁用BOM检查。如果您希望编解码器检查并删除BOM,请指定非端编解码器:
open(file_path, encoding="UTF-16").read()