Как вы получаете кодировку терминала из скрипта Python? - PullRequest
12 голосов
/ 18 июня 2011

Допустим, вы хотите запустить скрипт Python с некоторыми параметрами, такими как

python myscript some arguments

Я понимаю, что строки sys.argv[1] и sys.argv[2] будут иметь кодировку, указанную в терминале.Есть ли способ получить эту информацию из скрипта Python?

Моя цель примерно такая:

terminal_enocding = some_way.to.GET_TERMINAL_ENCODING
some = `sys.argv[1]`.decode(terminal_encoding)
arguments = `sys.argv[2]`.decode(terminal_encoding)

Ответы [ 2 ]

21 голосов
/ 18 июня 2011

sys.stdout.encoding даст вам кодировку стандартного вывода.sys.stdin.encoding даст вам оболочку для стандартного ввода.

8 голосов
/ 18 июня 2011

Вы можете позвонить locale.getdefaultlocale() и использовать вторую часть кортежа.

Подробнее здесь (запись в вики Fedora, объясняющая, почему и как используется кодировка по умолчанию в Python)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...