Я использую средство ведения журнала Python, и у меня возникла та же проблема, что он преобразует правильную последовательность конца строки "\x0D\x00\x0A\x00
" в "\x0D\x0A\x00
".
Вывод программы, которыйЯ хочу войти через Python как UTF-16
, как вы можете видеть.
Чтобы избежать того, что Python делает что-то отличное от простой записи байтов, которые он получает от stdout, в файл журнала, я попытался добавить encoding="UTF-8"
в logging.FileHandler()
.
В результате '\x0D
' больше не печатается, и вместо этого я получаю "\x0A\x00\x0A\x00
".Это немного лучше, я думаю.
В Linux кажется, что с этим проблем нет.Я использую тот же сценарий, но вместо этого моя программа печатает UTF-8
символов.
(Здесь осталось два вопроса: почему Python добавляет еще один символ новой строки? И можно ли записать дополнительную информацию в файл журнала? Помещение 'U' перед строками или использование "...". Encode (UTF-16) не работает. Но в противном случае файл журнала будет содержать строки разных кодировок и станет бесполезным ...)