2016-05-29 1 views
2

私はsys.getdefaultencoding()を試しましたが、残念ながらそれは動作しません。私のシステム上ではasciiを返します。システムロケールはja_JPに設定されています(つまり、エンコーディングはShift-JISでなければなりません)。Python 2.xでシステムのデフォルトエンコーディングを取得するには?

私はCJKテキスト(Windows上で)を解析しようとしています。私は、キーボードからテキストを読み込み、システムエンコーディングを決め、それをutf8に変換する必要があります。システムのエンコーディング(キーボード入力テキストのエンコーディング)はオプションではないので、zh_CN(GBKエンコーディング)とja_JP(Shift-JISエンコーディング)の間でシステムロケールを変更することがよくあります。どんな解決策ですか?

答えて

3

は解決:sys.stdin.encoding

また、sys.getdefaultencoding()をしようとする人のために、それは仕事はほとんどないだろうといつもhttps://wiki.python.org/moin/DefaultEncodingに応じascii次のようになります。

その値は「ASCII」である必要があり、それがときに使用されますバイト文字列をユニコード文字列に変換します。

あなたがバイト列に.decodeを非ASCII文字を入れた場合(sys.getdefaultencoding())メソッドは文字列が非ASCII文字を含めることはできませんので、バイト、UnicodeDecodeErrorで失敗します。

関連する問題