假设我正在读取一个包含 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 转换,它将起作用。
对于任何类型的编码文件,是否有更好的方法来执行此操作?