python 中文编码问题

来源:互联网 发布:js颜色选择器插件 编辑:程序博客网 时间:2024/05/01 22:17

转载

http://my.oschina.net/leejun2005/blog/74430


总结:

1)

前缀“u”表示“后面这个字符串“是一个Unicode字符串”,这仅仅是一个声明,并不表示这个字符串就真的是Unicode了;就好比某正太声称自己已满18岁,但实际上他的真实年龄并不确定,现在体育界年龄造假可不稀罕幺! 
那么声明成u有什么作用呢?对于Python来说,只要你声明某字符串是Unicode,它就会用Unicode的一套机制对它进行处理。比方说,做字符串操作的时候会动用到内部的Unicode处理函数,保存的时候以Unicode字符(双字节)进行保存。等等。显而易见,对于一个实际上并不是Unicode的字符串,做Unicode动作的处理,是有可能会出问题的。 u前缀只适用于你的字符串常量真的是Unicode的情况 

2)

用python处理在处理中文的时候需要注意一些问题。比如: 

>>> a = "我是一个中国人"
>>> print a[0:2]

>>> print a[0];
Î   (只能输出“我”字的前半部分

。像这样: 
c = unicode(a, "gb2312") 
print c[0] 
这个时候c的下标对应的就是每一个字符,不再是字节,并且通过len(c)就可以获得字符数!还可以很方便的转换为其他编码,比如转换为utf-8: 

d = c.encode("utf-8") 

未完


0 0
原创粉丝点击