㈠ python print无法输出中文字符
这里提示语法错误。因为你没有指定文件的编码,默认情况下不能用中文。
如果代码中有中文、中文的注释,需要在文件最上面加上这一句:
#encoding:utf-8
print'哈哈哈哈哈'
这样就OK了,望采纳!
㈡ python2.7 window7系统,编码愁死了,就是打不出中文,求大神帮忙 感激不尽!
#-*-coding:utf-8-*-
importrequests,bs4,sys
res=requests.get("http://www.weather.com.cn/weather/101010100.shtml")
soup=bs4.BeautifulSoup(res.content,"html.parser")
elems=soup.select("h1")
printelems[0].getText()
#18日(今天)
㈢ python2.7.9无法输出中文
python2.7及以下,输出字符默认为标准ASCII (0- 127,也就是 byte字符),显示乱码应该是你输出的是 utf-8 编码字符串,windows控制台默认编码是gbk(可以通过命令CHCP 65001 设置为utf-8),报错是因为你输出的是 unicode 字符(包含128-255)
新人如果对编码不是很了解,那最好的解决办法就是,封装一个unicode转byte函数,对于要输出的字符,都调用这个函数,如:
defu2b(text):
ifnotisinstance(text,unicode):
returntext
returntext.encode('utf-8')
㈣ 为什么Python没输出中文
本地执行可以显示中文。
代码在线工具中使用以下方法
print("\u5510\u5b9d\u6743".encode('utf-8').decode('unicode_escape'))
㈤ python无法输入中文怎么办
编码方式改成gbk就可以了。在文件的第一句这么写:
# -*-coding:gbk -*-
㈥ python命令行输入中文乱码怎么办
python2.X,代码中指定了UTF-8,但是在cmd命令行窗口时,打印的中文仍然会乱码。
在python3不存在该问题
运行结果:
原因
中文windows默认的输出编码为gbk ,与脚本中定义的UTF-8不一样,所以出现了解码失败的情况。
相关推荐:《Python基础教程》
解决方法
有如下两种方法可以解决这个问题
方法一
我们可以通过先把中文解码为unicode,然后再转化为gbk来解决这个问题:
修改后运行结果:
方法二
当然,我们也可以通过改变cmd命令行窗口的输出格式来解决这个问题:
·chcp 65001 就是换成UTF-8代码页
·chcp 936 可以换回默认的GBK
但是这样就降低了脚本的兼容性,在其他环境运行的时候可能还会出现这样的错误,而且可能会影响其他脚本运行,所以推荐使用第一种方法。
㈦ 请问,python打开中文字符文件,但显示不出中文怎么办
一般是编码格式的问题,python内部默认的编码格式是utf-8,常见的文本编码格式是utf-8,gbk。编码格式不不一致就会乱码。可以在代码前面申明编码格式。
㈧ 如何解决python 打印中文出错的问题
解决python打印中文出错的方法:
如果使用的是python2的话,需要在.py文件第一行加入“#coding=utf-8”,然后使用“print("中文")”的方式打印中文
示例如下:
执行结果:
python3直接使用“print("中文")”语句就可以了
示例如下:
执行结果:
更多Python知识,请关注:Python自学网!!
㈨ python怎么输出中文
打开Python编译器,在代码的第一行设置编码格式,加入#-*-coding:utf-8-*-即可。
相关推荐:《Python基础教程》
如下:
㈩ python 无法显示汉字
实际上,这段代码所出现的问题和cPickle模块没什么关系。而是Python 2显示中文“乱码”的问题。
Python 2中,str是8-bit string sequence(有点像Python 3中的bytes)。而Python 3中str就相当于Python 2中的unicode。
所以,
>>>a='上海'
>>>repr(a)
"'\xc9\xcf\xba\xa3'"
>>>a#a中存储的8字节转义字符序列
'xc9xcfxbaxa3'
>>>printa#输出a,在此过程中,会对a进行解码操作,然后输出
上海
上例中,可以看到:
a = '上海'
a中实际存储的是:
'xc9xcfxbaxa3'
这样一个字节序列。它实际上是对'上海'这个unicode字符串按gbk/cp936/gb18030编码得到的(和简体中文Windows操作系统的默认编码有关)。
给你推荐一篇博客:
http://blog.csdn.net/kiki113/article/details/4062063
下面是我写的示例:
#_*_coding:gbk_*_
#TestwithPython2.7,Python3.3onWindowsXP
try:
importcPickleasp
except:
importpickleasp
address_file='address.txt'
classHuman(object):
def__init__(self,address):
self.address=address
deftxl(self):
af={'address':self.address}
print(af)
print(af['address'])
f=open(address_file,'wb')#Inpython3,usebinarymode.
#Inpython2.7,defaultprotocolis0.
#However,itis3inpython3.3.
p.mp(af,f,0)
f.close()
address='上海'
print(address)
dq=Human(address)
dq.txl()
af=open(address_file,'rb')#
print(p.load(af))
af.close()
"""
Output
----------------------------------------
Python2.7.6:
1.#-*-coding:utf-8-*-
涓婃捣
{'address':'xe4xb8x8axe6xb5xb7'}
涓婃捣
{'address':'xe4xb8x8axe6xb5xb7'}
2.#-*-coding:gbk-*-or#_*_coding:cp936_*_
上海
{'address':'xc9xcfxbaxa3'}
上海
{'address':'xc9xcfxbaxa3'}
Python3.3.3:
上海
{'address':'上海'}
上海
{'address':'上海'}
------------------------------------------
InPython3.3.3:
>>>'上海'.encode('utf-8')
b'xe4xb8x8axe6xb5xb7'
>>>_.decode('cp936')
'涓婃捣'
"""
从这个示例中可以看出,虽然把字典整个print出来不能正常解析address中的内容:
>>>addr={'addr':'上海'}
>>>addr
{'addr':'xc9xcfxbaxa3'}
>>>printaddr
{'addr':'xc9xcfxbaxa3'}
但是单独打印:
>>>addr['addr']
'xc9xcfxbaxa3'
>>>printaddr['addr']#print输出之前隐含了编码解码操作,但为何打印整个字典时输出不正常尚待研究
上海
一切OK。
所以,如果真的用Python 2的话,对于该问题可以考虑手工负责编码、解码操作(如果使用print单独打印地址信息,就不用这么麻烦了,因为这些事它帮你做了)。用Python3,就没这么多问题了。
最后补充一点,pickle模块只是提供了一种序列化Python对象的方法。所以序列化生成的文件中和想象的不一样也不足为奇。正如自由de王国所说的,只要序列化后还能够反序列化成功就行了。实际上,当protocol不是0的情况下,序列化生成的文件是二进制格式的,根本没法用记事本直接看。