Кодек Python 'ascii' не может закодировать символьную ошибку

1

Я пытался прочитать файл 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.

  • 0
    файл должен быть декодирован с помощью utf-16le не utf-16
  • 0
    Спасибо, но это не сработало.
Теги:
python-3.x
codec

1 ответ

0

Первые несколько байтов - это спецификация (знак байтового байта). Это последовательность байтов в начале документа Unicode, которая сообщает вам порядок байтов, кодирование и т.д.

Эта статья в Википедии поможет объяснить технические детали:

Значок порядка байтов

У вас есть выбор. Этот ответ показывает различные методы обработки спецификации для разных кодировок: ответ

И этот ответ показывает вам, как правильно читать файл в памяти, и это то, что я думаю, что вы хотите сделать. Ответ. Таким образом, вы можете обработать файл как обычную строку Python.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню