python2.7的乱码问题

pydev不提示变量的时候用alt+/ 来解决

看了http://blog.csdn.net/kiki113/article/details/4062063这篇文章之后的疑问:

问题1:gbk和unicode编码的不同

#coding:gbk
ss='哈哈'
print ss
ss1=u'哈哈'
print len(ss),len(ss1)
print ss==ss1 
结果:
哈哈
4 2
True

为什么相同但是长度不一样?

问题2:

解决utf-8格式和unicode和编码问题

s1=u'哈哈'
s='哈哈'
utf8_s=unicode(s,'utf-8')
utf8_s==s1
True
print utf8_s
哈哈
print s1
哈哈

python默认读取文本的格式为ansi,如果将文本的格式转化为utf-8则需要解码

例如:print open("Test.txt").read().decode("utf-8")


问题3:

声明文件的格式不同

文件的编码格式决定了在该源文件中声明的字符串的编码格式

即意味着如果声明为gbk编码的文件,最好文件也声明为gbk格式的,如果文件为utf-8格式的话,容易出错。

s='你好'
s1=u'你好'
s
'\xe4\xbd\xa0\xe5\xa5\xbd'
s1.encode('utf-8')
'\xe4\xbd\xa0\xe5\xa5\xbd'
s==s1.encode('utf-8')
True 
以上代码说明控制台程序默认的格式是utf-8编码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值