2011-06-18 80 views
11

比方說,你要開始與一些參數的Python腳本像如何從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) 

回答

18

sys.stdout.encoding會給你的標準輸出的編碼。 sys.stdin.encoding將爲您提供標準輸入的附件。

6

您可以撥打locale.getdefaultlocale()並使用元組的第二部分。

查看更多here(Fedora的維基條目解釋爲什麼是如何在Python默認編碼的)