导航:首页 > 编程语言 > python运行显示不了中文

python运行显示不了中文

发布时间:2022-12-29 02:09:47

1. 请问,python打开中文字符文件,但显示不出中文怎么办

一般是编码格式的问题,python内部默认的编码格式是utf-8,常见的文本编码格式是utf-8,gbk。编码格式不不一致就会乱码。可以在代码前面申明编码格式。

2. 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的情况下,序列化生成的文件是二进制格式的,根本没法用记事本直接看。

3. python3不能使用中文怎么办

Python3对中文的支持非常全面。在Python中,源文件默认使用的是UTF-8编码,这样一来,不单可方便地在源代码的字符串中使用中
文,而且变量名也可以使用中文。
2、在Python3中不需要来回的编码和解码,直接使用print函数即可输出变量的内容
3、在Python3中,字符串对象没有decode和encode方法。
推荐学习《python教程》。

4. python IDLE以及控制台中无法正确显示中文

Python显示中文的问题很头大,原因在于Windows中文版的编码格式是GBK,因此直接显示中文会显示乱码的问题。
因此我们可以在开头加上#_*_encoding:<>_*_ <>可以代笔:UTF8或cp936等编码。

5. 为什么使用python编程不能显示中文

可以的呀,记得在py文件的头上加上#coding=utf-8
使用中文字符串的时候字符串用unicode对象,即u’中文字符串‘

6. 请问python2.7无法正常显示中文(windos7+python2.7.9+pycharm2.7.3),怎么解决

查看你爬取的地址页面的编码方式,比如是gb2312,那么,解码tags1如下:
tags1 = unicode(tags1,'gb2312')

7. Python中加了# -*- coding: utf-8 -*-,还是不能显示中文

应该是windows系统识别编码的问题。
将脚本文件的编码 设置成 ANSI看看。

看你的显示应该是learn python for hard way这本书呗,这书上都是py2的,你下一个py3版本,这种问题一般就不会出现了。

8. python 部分中文显示乱码

wb读取pdf?二进制读取????

换成w+


提示的错误时名称错误,或者打开模式wb错误。

  1. 看一下名称是否出错,例如多了空格等

  2. 看一下计算机pdf和其他文件内部的区别,例如是否有图片等等,导致

9. 我刚开始学习python,最近运行一个练习程序,运行后的后两行突然不显示中文(之前运行这个程序显示中文)

一般在文件最上面添加下面的语句就可以了
# -*- coding: utf-8 -*-

10. python为什么无法显示中文

你的版本是Python2 Python2 代码上面要加上

#-*-coding:utf-8-*-
阅读全文

与python运行显示不了中文相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:736
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163