ОПЕРАЦИЯ · КОДИРОВКИ
Преобразовать UTF-16 в UTF-8
Перекодировать текст с BOM, сохранив переносы.
Предварительные условия
Python 3; input-utf16.txt имеет BOM. Для файла без BOM явно выберите utf-16-le или utf-16-be.
Команда
python3 - <<'PY'
with open("input-utf16.txt", encoding="utf-16", newline="") as src, open("output-utf8.txt", "x", encoding="utf-8", newline="") as dst:
while True:
text = src.read(65536)
if not text: break
dst.write(text)
PYОбъяснение аргументов
newline="" сохраняет окончания строк; чтение блоками ограничивает буфер.
Ожидаемый результат
UTF-8 без BOM с тем же текстом.
Проверка
Сравните decoded строки исходника и результата с соответствующими кодировками.
Распространённые ошибки
- Неверная endianness даёт искажённый текст; errors="ignore" скрывает потери.
Обратимость
Исходник сохранён; BOM и исходные байты восстанавливаются только по договорённости.