8

【Python3.2を使用】

encodingに引数を指定しない場合open、ファイルは を使用して開かれますlocale.getpreferredencoding()。たとえば、私の Windows マシンでは、 を使用するたびに、 を使用open('abc.txt')してデコードされcp1252ます。

すべての入力ファイルをutf-8. encoding = 'utf-8'明らかに、すべてのopen関数呼び出しに追加できます。または、より良いのはencoding = MY_PROJECT_DEFAULT_ENCODING、定数がどこかのグローバルレベルで定義されている場合です。

openしかし、「デフォルト」のエンコーディングを変更することで、すべての呼び出しを編集しないようにするクリーンな方法があるかどうか疑問に思っていました。ロケールを変更することで変更できるものですか?または、ロケール内のパラメーターを変更することによってですか? Python のマニュアルに従おうとしましたが、これがどのように使用されることになっているのか理解できませんでした。

ありがとう!

4

1 に答える 1

3

Windows では、Python 3.3+ を使用しchcp 65001て、ロケール エンコーディングを UTF-8 に変更するために、Python を実行する前にコンソールまたはバッチ ファイルで実行します。

于 2012-07-17T05:49:05.287 に答える