Предположим, что я читаю файл, содержащий 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, это сработает.
Есть ли лучший способ сделать это для любого типа кодированного файла?