Я пытался прочитать файл utf-16. Этот код работает нормально на локальной машине, но когда я запускал его в службе пакетной обработки AWS, он выдавал ошибку выше.
import codecs
file_to_split = codecs.open("file_utf_16.txt", 'r+', "UTF-16")
Он выдает header 'ascii' codec can't encode character '\ufeff' in position 0: ordinal not in range(128)
исключения. header 'ascii' codec can't encode character '\ufeff' in position 0: ordinal not in range(128)
Я использую Python 3.6.
Первые несколько байтов - это спецификация (знак байтового байта). Это последовательность байтов в начале документа Unicode, которая сообщает вам порядок байтов, кодирование и т.д.
Эта статья в Википедии поможет объяснить технические детали:
У вас есть выбор. Этот ответ показывает различные методы обработки спецификации для разных кодировок: ответ
И этот ответ показывает вам, как правильно читать файл в памяти, и это то, что я думаю, что вы хотите сделать. Ответ. Таким образом, вы можете обработать файл как обычную строку Python.
utf-16le
неutf-16