如下的代码,我想输出中文,但是不成功,求指导
#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'音乐-演唱会'
arr = text.split('-')
for item in arr:
print item
get it!
看下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)
#["音乐", "演唱会"]
这个吧直接编辑就乱
别坑楼主了,楼上们...
coding=utf-8
text='音乐-演唱会'
tt=text.split('-')
tt的结果是的列表 分别存储的是 音乐和 演唱会
不相信的话
print text.split('-')[0]
print text.split('-')[1]
看看
保存文件的时候也需要编码也需要是Utf-8的
for i in tt:
print i
p.s. 这是Python2.x的BUG,据说3.x解决了,但我没验证过。
不是很了解楼主的问题
text=u'音乐-演唱会'
text=text.decode('utf-8')
tt=text.split('-')
print tt
就可以了啊,你decode 再encode不是又变成str格式了?
>>> text=u'音乐-演唱会'
>>> for t in text.split('-'):
... print t
...
音乐
演唱会
你去print
一个对象,默认调用对象的__str__
去显示其所含内容
此处,你print
一个list
,所以默认调用list的__str__
显示list中的数据内容
此处显示出来的数据,本身已经是正确的中文了,只是用的是(utf-8形式的)\xXX\xXX
的形式显示出来的而已
所以,单独用:
print tt[0]
就可以看到你要的:音乐
了。
更多原理性的解释,详见:
【整理】Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来或打印出来却是乱码
相关的解释:
【已解决】BeautifulSoup已经获得了Unicode的Soup但是print出来却是乱码