2012-04-20 5 views
1

Я пытаюсь обрабатывать различные кодировки в скрипте Python, более удобный и автоматический магии (есть API для utf8). Это межплатформенный консольный скрипт.Что делать, если sys.stdout.encoding - None?

Для печати на stdout Я использую sys.stdout.encoding и, похоже, почти всегда при печати на консоль. Однако, когда stdout составляет , труба становится None.

Так что в этом случае я предполагаю, что я трубопровод в файл и использовать locale.getpreferredencoding() но:

  • Я не уверен, что это правильное кодирование для печати в файл, но он работает довольно кроссплатформенность.
  • Это не работает, если Трубопровод к программе|. Я не знаю, как определить, что это не так, если есть стандартное или ожидаемое поведение для кодирования в этом случае.

ответ

1

Если это None, просто выведите свои данные как utf-8 и запишите его. Если случается, что существуют другие варианты кодирования, сделайте это через командную строку или другие средства.

Смежные вопросы