Python3中態到UnicodeEncodeError: 'ascii'コーデックは範囲内にない序数の文字をエンコードできません(128)Python3中態到UnicodeEncodeError: 'ascii'コーデックは範囲内にない序数の文字をエンコードできません(128)

元のリンク:https//blog.csdn.net/th_num/article/details/80685389

Python3中態到UnicodeEncodeError: 'ascii'コーデックは範囲内にない序数の文字をエンコードできません(128)

ただし、Windowsでコードを実行するのは正常です。
その理由は、Linuxシステム言語によるものです。
システム環境コードを確認しました
>>> import sys
>>> sys.stdout.encoding
'US-ASCII'
     
      
      
  • 1
  • 2
  • 3

そして、正常に印刷できる別のマシンはen_US.UTF-8です。

解決

(1)環境変数LANGを設定します

LinuxまたはMacで環境変数を設定する方法は同じです。〜 / .bash_profileファイルを編集し(「〜」はユーザーがログインした後のデフォルトディレクトリを指します)、次の行を追加します。

export LANG="en_US.UTF-8"
     
      
      
  • 1

保存して終了した後、コマンドラインコンソールを再度開きます

(2)PYTHONIOENCODINGを使用する

pythonコマンドを実行する前に、パラメーターPYTHONIOENCODING = utf-8 pythontest.pyを追加します。

このパラメーターの説明は、公式ドキュメントにあります:https
//docs.python.org/3.6/using/cmdline.html#envvar-PYTHONIOENCODING

(3)標準出力を再定義する

sys.stdout = codecs.getwriter( "utf-8")(sys.stdout.detach())をコードに追加して、コードが次のようになるようにします。

import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
print('中文')
     
      
      
  • 1
  • 2
  • 3
  • 4

おすすめ

転載: blog.csdn.net/stay_foolish12/article/details/111929795