【发布时间】:2026-02-12 09:05:01
【问题描述】:
假设我正在读取一个包含 3 个逗号分隔数字的文件。该文件以未知编码保存,到目前为止我正在处理 ANSI 和 UTF-8。如果文件是 UTF-8 格式,并且有 1 行的值为 115,113,12,则:
with open(file) as f:
a,b,c=map(int,f.readline().split(','))
会抛出这个:
invalid literal for int() with base 10: '\xef\xbb\xbf115'
第一个数字总是被这些 '\xef\xbb\xbf' 字符弄乱。对于其余 2 个数字,转换工作正常。如果我手动将 '\xef\xbb\xbf' 替换为 '' 然后进行 int 转换,它将起作用。
对于任何类型的编码文件有更好的方法吗?
【问题讨论】:
标签: python utf-8 character-encoding byte-order-mark