日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)...

發布時間:2025/3/15 python 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現象

打印任何一種包含有中文的對象,字典、列表、DataFrame、或字符串。比如:

print('中文')

控制臺報錯:

Traceback (most recent call last):File "printcn.py", line 1, in <module>print('\u4e2d\u6587') UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

換另外一臺機器可以正常顯示?中文?。或者在PyCharm里執行也可以正常顯示。只有在命令行控制臺會報錯。

我的環境是MacOS 10.13.3 中文,Anaconda3 5.0.1

Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct 6 2017, 12:04:38) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>

查找原因

如果是python 2.X的話需要在文件中加上?# -*- coding: utf-8 -*-?、以及?reload(sys) sys.setdefaultencoding("utf8")?。但是Python3應當默認就使用utf8編碼,而且即使設置了這些也仍然不能正常打印。

有些人說用encode('utf-8')函數解決,但如果直接打印字典或DataFrame,總不能每個元素都encode一般吧。

最終查看了一下系統環境編碼

>>> import sys >>> sys.stdout.encoding 'US-ASCII'

而另一臺能正常打印的機器是?en_US.UTF-8?

解決辦法

(1)設置環境變量LANG

在linux或Mac上設置環境變量的方式一樣,編輯~/.bash_profile文件('~'指的是用戶登錄后的默認目錄),添加一行:

export LANG="en_US.UTF-8"

保存退出后重新打開命令行控制臺

(2)使用PYTHONIOENCODING

在運行python命令前添加參數?PYTHONIOENCODING=utf-8 python printcn.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('中文')

?

轉載于:https://www.cnblogs.com/qhlblog/p/8622109.html

總結

以上是生活随笔為你收集整理的Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。