В какой кодировке находятся элементы sys.argv
, в Python? закодированы ли они кодировкой sys.getdefaultencoding()
?
sys.getdefaultencoding(): возвращает имя текущей строковой кодировки по умолчанию, используемой в реализации Unicode.
PS: Как было указано в некоторых ответах, sys.stdin.encoding
действительно было бы лучшим предположением. Мне бы хотелось увидеть окончательный ответ на этот вопрос, хотя и с указателями на солидные источники!
PPS. Как заметил Вим, Python 3 решает эту проблему, помещая объекты str
в sys.argv(если я правильно понимаю). Однако вопрос остается открытым для Python 2.x. В Unix переменная окружения LC_CTYPE кажется правильной проверкой, нет? Что нужно делать с Windows (чтобы элементы sys.argv правильно интерпретировались независимо от консоли)?