用Python2或Python3打印汉字

用Python2或Python3打印汉字,python,utf-8,chinese-locale,python-3.6,Python,Utf 8,Chinese Locale,Python 3.6,最近我一直在学习Python,Py2和Py3之间有一些区别,新生儿很难理解它们 头上的射棒是 #!/usr/bin/env python #-*- coding:utf-8 -*- 当我想把汉字打印出来的时候,事情就不顺利了 即使我在每个句子中添加“.decode()”函数,它们也是一样的 说到Python3,我得到了一个错误消息 UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordin

最近我一直在学习Python,Py2和Py3之间有一些区别,新生儿很难理解它们

头上的射棒是

#!/usr/bin/env python
#-*- coding:utf-8 -*-
当我想把汉字打印出来的时候,事情就不顺利了

即使我在每个句子中添加“.decode()”函数,它们也是一样的

说到Python3,我得到了一个错误消息

UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordinal not in range(128)
[Finished in 0.1s with exit code 1]

您的控制台/terminal/cmd.exe/powershell似乎没有使用
UTF-8
,因此Python无法将其转换为
UTF-8
,它使用的是
ascii
,没有汉字。要打印文本,您必须使用
encode()
(或
encode('UTF-8')
),而不是
decode()
decode()
用于从键盘或网络/套接字/文件获取文本时,将ie
UTF-8
转换为
UNICODE
encode()
用于将
UNICODE
转换为
UTF-8
,当您要打印或通过网络/套接字发送什么或保存在文件中时。顺便说一句:如果您打印列表,Python将使用
repr(…)
和列表中的每个元素来显示对调试有用的信息-即
u“\u7532”
。在打印之前,您必须将列表中的元素连接到一个字符串,即,
print(“.join(jiazi])
什么不起作用?