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