python新手编码问题,急,在线等

如下的代码,我想输出中文,但是不成功,求指导

python">#coding=utf-8    

text='音乐-演唱会'

tt=text.split('-')

print tt

输出的结果是

['\xe9\x9f\xb3\xe4\xb9\x90', '\xe6\xbc\x94\xe5\x94\xb1\xe4\xbc\x9a']

但我想要的结果是['音乐','演唱会']

—————————————————————————————————————————

于是我这样写

text=u'音乐-演唱会'  

text=text.decode('utf-8').encode('utf-8')

tt=text.split('-')

print tt

还是输出

['\xe9\x9f\xb3\xe4\xb9\x90', '\xe6\xbc\x94\xe5\x94\xb1\xe4\xbc\x9a']

请问这个问题怎么解决?怎么会出现这样的情况。要怎么样才能输出中文

回答:

>>> text=u'音乐-演唱会'

>>> for t in text.split('-'):

... print t

...

音乐

演唱会

回答:

看下sys.stdout.encoding的编码是不是utf-8,确保编码一致。

#coding=utf-8 

import sys

print sys.stdout.encoding

text='音乐-演唱会'

tt = text.split('-')

print tt #这里隐性调用list类型的__str__方法。

print "[%s]" % ',' . join(['"%s"' % x for x in tt])

#["音乐","演唱会"]

#或者使用json模块

import json

print json.dumps(tt, ensure_ascii=False)

#["音乐", "演唱会"]

回答:

text = u'音乐-演唱会'     

arr = text.split('-')

for item in arr:

print item

get it!

回答:

for i in tt:

print i

p.s. 这是Python2.x的BUG,据说3.x解决了,但我没验证过。

回答:

别坑楼主了,楼上们...

coding=utf-8

text='音乐-演唱会'

tt=text.split('-')

tt的结果是的列表 分别存储的是 音乐和 演唱会

不相信的话

print text.split('-')[0]

print text.split('-')[1]

看看

回答:

请输入图片描述

这个吧直接编辑就乱

回答:

你去print一个对象,默认调用对象的__str__去显示其所含内容

此处,你print一个list,所以默认调用list的__str__显示list中的数据内容

此处显示出来的数据,本身已经是正确的中文了,只是用的是(utf-8形式的)\xXX\xXX的形式显示出来的而已

所以,单独用:

print tt[0]

就可以看到你要的:音乐了。

更多原理性的解释,详见:

【整理】Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来或打印出来却是乱码

相关的解释:

【已解决】BeautifulSoup已经获得了Unicode的Soup但是print出来却是乱码

回答:

text=u'音乐-演唱会'  

text=text.decode('utf-8')

tt=text.split('-')

print tt

就可以了啊,你decode 再encode不是又变成str格式了?

回答:

保存文件的时候也需要编码也需要是Utf-8的

回答:

不是很了解楼主的问题

以上是 python新手编码问题,急,在线等 的全部内容, 来源链接: utcz.com/a/159396.html

回到顶部