2011-06-18 17 views
11

Powiedzmy chcesz uruchomić skrypt Pythona z niektórych parametrów jakJak uzyskać kodowanie terminala z poziomu skryptu Pythona?

python myscript some arguments 

Rozumiem, że struny sys.argv[1] i sys.argv[2] będzie miał kodowania określonego w terminalu. Czy istnieje sposób, aby uzyskać te informacje z poziomu skryptu Pythona?

Moim celem jest coś takiego:

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

Odpowiedz

18

sys.stdout.encoding daje kodowanie standardowe wyjście. sys.stdin.encoding da ci encdoing dla standardowego wejścia.

6

Można zadzwonić locale.getdefaultlocale() i wykorzystywać drugą część krotki.

Zobacz więcej here (Fedora wpis wiki wyjaśniając dlaczego i jak tam domyślnego kodowania w Pythonie)

Powiązane problemy