导航:首页 > 编程语言 > python无法输出中文

python无法输出中文

发布时间:2022-06-29 09:40:23

python 输出中文问题,真是整疯了。。。

选择# -*- coding: utf-8-*-,因为你文件编码是utf-8的。


也可以这样,形式简单一些:

#encoding:utf-8


python中有两种类型的字符串:普通的str和unicode。一般情况下,处理中文数据推荐使用unicode类型,因为这样就不用考虑编码的问题。到了显示或输出时再转换为存储类型(utf-8、GBK)。但unicode本身是不能输出的,它只是一种内部编码。


看以下示例代码:

#unicode转str,utf-8编码
u'哈哈哈哈'.encode('utf-8','ignore')
#unicode转str,GBK编码
u'哈哈哈哈'.encode('gbk','ignore')
#str转unicode,其中str为utf-8编码
'哈哈哈哈'.decode('utf-8','ignore')

㈡ python如何输入输出中文

1,在文件夹中新建一个test.py的文件。
2,点击打开文件,输入以下代码:
#!/usr/bin/env
python
#
-*-
coding:
utf-8
-*-
print
u'中文测试正常'。
3,在文件夹下运行DOS界面。
4,输入test.py并运行,即可成功输入“中文测试正常”的中文字符。

㈢ 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无法输出中文字符

这里提示语法错误。因为你没有指定文件的编码,默认情况下不能用中文。

如果代码中有中文、中文的注释,需要在文件最上面加上这一句:


#encoding:utf-8

print'哈哈哈哈哈'


这样就OK了,望采纳!

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

㈥ python 2.7输出中文字符串出现错误如何解决

由于汉字不属于ASCII编码表中的字符,因此,无论是在Python交互模式还是执行模式,很多时候都无法正常输出中文。

㈦ 为什么Python没输出中文

本地执行可以显示中文。
代码在线工具中使用以下方法

print("\u5510\u5b9d\u6743".encode('utf-8').decode('unicode_escape'))

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

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

㈨ python3不能使用中文怎么办

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

阅读全文

与python无法输出中文相关的资料

热点内容
成都市区建成面积算法 浏览:656
智能家居单片机 浏览:93
买男装用什么app好 浏览:851
文件夹合并了怎么拆开 浏览:256
波段副图源码无未来函数 浏览:84
livecn服务器地址 浏览:257
程序员这个工作真的很吃香吗 浏览:844
程序员和数学分析师待遇 浏览:678
压缩气弹簧怎么拆 浏览:321
华为公有云服务器添加虚拟ip 浏览:209
程序员和运营哪个累 浏览:24
抖音安卓信息提示音怎么设置 浏览:454
光速虚拟机的共享文件夹 浏览:248
程序员培训机构发的朋友圈真实性 浏览:742
天干地支简单算法 浏览:299
下载个压缩文件 浏览:300
普通人电脑关机vs程序员关机 浏览:628
米酷建站源码 浏览:115
氢气app怎么搜搭配 浏览:619
pdf绿盟 浏览:505