2011-06-18 18 views
11

は、文字列sys.argv[1]sys.argv[2]は、端末に指定されたエンコーディングを持っていることを、あなたは私が理解しPythonスクリプト内から端末のエンコーディングを取得するにはどうすればよいですか?

python myscript some arguments 

のようないくつかのパラメータでPythonスクリプトを開始したいとしましょう。 Pythonスクリプト内からこの情報を取得する方法はありますか?あなたはlocale.getdefaultlocale()を呼び出し、タプルの第二の部分を使用することができます

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あなたの標準出力のエンコーディングを与えるよりhere(なぜだとどのようにPythonでデフォルトのエンコーディングの者を説明するのFedora wikiのエントリ)を参照してください。 sys.stdin.encodingは、標準入力のためのエンコーディングを提供します。

6

私の目標は、このようなものです。

関連する問題