Python 输出中文问题,真是整疯了。。。
#-*-coding:cp936-*-还是#-*-coding:utf-8-*-s="你好"这里变成s=u"你好"有什么用?prints百度了半天还是不懂。。。只是知道先...
# -*- coding: cp936 -*- 还是 # -*- coding: utf-8 -*-
s = "你好" 这里变成 s = u"你好" 有什么用?
print s
百度了半天还是不懂。。。只是知道先decode()成unicode ,然后再encode()成其他编码,问题是这个其他倒是是什么呢????
# -*- coding: cp936 -*- 和 # -*- coding: utf-8-*- 选哪个呢?后者是linux里用的?
我是windows的,在notepad++的格式里已经设置成了 utf-8 展开
s = "你好" 这里变成 s = u"你好" 有什么用?
print s
百度了半天还是不懂。。。只是知道先decode()成unicode ,然后再encode()成其他编码,问题是这个其他倒是是什么呢????
# -*- coding: cp936 -*- 和 # -*- coding: utf-8-*- 选哪个呢?后者是linux里用的?
我是windows的,在notepad++的格式里已经设置成了 utf-8 展开
1个回答
展开全部
选择# -*- 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')
更多追问追答
追问
哭了,不知道怎么感谢你!!最后一个小问题,u'哈哈哈哈'.encode('gbk', 'ignore') 打出来没问题,但是 u'哈哈哈哈'.encode('utf-8', 'ignore') 打出来是一些不认识的字,为什么呢? utf-8 不是比gbk更厉害吗?
追答
utf-8支持的字符比GBK的多。
windows系统?如果utf8格式输出为乱码,证明你的命令行无法显示utf-8格式的编码。我这里正好相反,显示不出GBK格式的编码。因为不能正常显示,所以就不认识了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询