python字符乱码的问题。
来源:互联网 发布:unity 删除 数组对象 编辑:程序博客网 时间:2024/05/22 01:42
在这篇文章上转载的http://www.jb51.net/article/17560.htm,主要记录几个关键点
python文件如果定义
#coding=utf-8
#coding=gb2312
如:s='中文'
如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。
但是对于这种 str=u'中文' 就是按照unicode编码
python内部标准码是unicode码,两个函数很重要
str.encode("hex") 把unicode字符串转成hex
str.decode("hex") 把hex字符串转成unicode
IDE的问题:在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。
如在UliPad中运行如下代码:
s=u"中文"
print s 会提示:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)。这是因为UliPad在英文WindowsXP上的控制台信息输出窗口是按照ascii编码输出的(英文系统的默认编码是ascii),而上面代码中的字符串是Unicode编码的,所以输出时产生了错误。
将最后一句改为:print s.encode('gb2312')
则能正确输出“中文”两个字。
若最后一句改为:print s.encode('utf8')
则输出:\xe4\xb8\xad\xe6\x96\x87,这是控制台信息输出窗口按照ascii编码输出utf8编码的字符串的结果。
unicode(str,'gb2312')与str.decode('gb2312')是一样的,都是将gb2312编码的str转为unicode编码
使用str.__class__可以查看str的编码形式
最后这段参考代码
#!/usr/bin/env python
#coding=utf-8
s="中文"
if isinstance(s, unicode):
#s=u"中文"
print s.encode('gb2312')
else:
#s="中文"
print s.decode('utf-8').encode('gb2312')
- python字符乱码的问题。
- python 中文字符乱码的问题
- python连接Mysql数据库字符乱码的问题
- 关于python中中文字符切割乱码的问题
- 中文字符乱码问题简单解决 python
- 字符乱码问题的解决方案
- 字符乱码问题的解析
- 1.字符乱码的问题
- 【搬家】【Python】【Windows】Windows Console 中 Python 输出中文字符乱码的问题
- tomcat 导致的字符乱码的问题 eclpise字符乱码
- python中文乱码的问题
- python中文乱码的问题
- 关于python的乱码问题
- python中文乱码的问题
- LAMP的中文字符乱码问题
- 解决截取字符乱码的问题
- 读取cookie中文字符乱码的问题
- 解决javadoc一个字符乱码的问题
- how tomcat works 读书笔记(二)----------一个简单的servlet容器
- 阿里巴巴离职DBA职业生涯总结--吕海波
- java md5加密函数
- vs2008配置JQuery智能提示步骤
- 参加香港亚洲秋季电子展经验点滴拾遗
- python字符乱码的问题。
- 常用的基于区域的局部匹配准则 SAD、SSD、NCC
- 每天一个linux命令(16):which命令
- NYOJ127 星际之门(一)【定理】
- BZOJ 1072 SCOI2007 排列perm 状压DP
- 读写优化
- Mass Attenuation Coefficients
- 河北玻璃钢格栅厂家
- IOS小知识点3之IOS面试宝典(200例)