这个问题曾在我初学Python的时候令我头疼不已,尤其是目前我们因为各种包的原因还只能使用2.x的版本。在3.x中字符编码已经统一用Unicode了。

Python 默认支持的是ASCII字符,包含了英文字母大小写以及标点符号,用一枚字节表示。中文则使用两枚字节表示。

没兴趣的同学可以绕过这段…

有人可能要问了,我擦,为神马以前说一个汉字的精度越高字节越多么?为神马是两枚字节?

这是两个不同的概念。存储里讲的是一个汉字占两个字节。 而你说的点阵那个是打印码。

平时说1个汉字占2个字节,是指汉字编码,就象每个字符都有一个ASCII码一样。1个ASCII码占1个字节,而1个汉字编码占2个字节。

简单地解释下,我们屏幕上看到的汉字其实是一个16*16的矩阵,它所需要的位数共是16*16=256个位,每个字节为8位,因此,每个汉字都需要用256/8=32个字节来表示。

即每两个字节代表一行的16个点,共需要16行,显示汉字时,只需一次性读取32个字节,并将每两个字节为一行打印出来,即可形成一个汉字。

这也就是传说中的点阵字体。

---我是正文的分割线---

So当中文编码和ASCII混用的话,就会出现错误咯。

目前中文编码有GB2312,BIG5,GBK。

建议使用统一字符集Unicode,可以处理所有的语言文字。

如果在.py文件中使用中文,请使用:

#-*- coding:utf-8 –*-

请注意在使用IDE的时候,project的编码格式一定要设置为utf-8,否则输出的仍是乱码,因为你写的脚本没用UTF-8保存。

先别急着去练习,咱们来看看下面这个脚本:

#-*- coding:utf-8 –*-

# chinese.py

chinese='''

在Python中使用中文,一定要

注意字符编码问题

'''printchinese

在命令行运行的结果:

这是咋回事呢?不是写了编码了么?还乱码啊,有木有?有木有?有木有?

这是因为win的,命令行用的是cp936编码,而上面脚本用的是utf-8编码,因此导致乱码。

解决方法是,使用decode和encode函数对字符重新解码和编码。

print chinese.decode('utf-8').encode('cp936')

OK,熟悉的文字出来了。

2011/8/8更新,以下内容转载自:

http://ppjava.iteye.com/blog/210143

常见的编码转换分为以下几种情况:

unicode->其它编码

例如:a为unicode编码 要转为gb2312。a.encode('gb2312')

其它编码->unicode

例如:a为gb2312编码,要转为unicode. unicode(a, 'gb2312')或a.decode('gb2312')

编码1 -> 编码2

可以先转为unicode再转为编码2

如gb2312转big5

unicode(a, 'gb2312').encode('big5')

判断字符串的编码

isinstance(s, str) 用来判断是否为一般字符串

isinstance(s, unicode) 用来判断是否为unicode

如果一个字符串已经是unicode了,再执行unicode转换有时会出错(并不都出错)

可以写一个通用的转成unicode函数:

def u(s, encoding):

if isinstance(s, unicode):

return s

else:

return unicode(s, encoding)

python支持中文吗_Python中使用中文相关推荐

  1. python支持complex吗_Python中complex函数有什么用?

    complex函数可以使用参数real + imag*j方式创建一个复数.也可以转换一个字符串的数字为复数:或者转换一个数字为复数. 如果第一个参数是字符串,第二个参数不用填写,会解释这个字符串且返回 ...

  2. python画图显示中文乱码_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

  3. python图片显示中文_解决Python pandas plot输出图形中显示中文乱码问题

    解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaco ...

  4. python脚本实现将代码中的中文翻译为其他语言

    python脚本实现将代码中的中文翻译为其他语言 如果我们写的代码中带有中文的字符提示,现在要将其翻译成为其他国家的语言,在没有做多国语言配置的情况下只能自己手动复制翻译.这种机械重复性动作完全可以交 ...

  5. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  6. 在python中使用中文_Python中使用中文的方法

    python的中文问题一直是困扰新手的头疼问题,这篇文章将给你详细地讲解一下这方面的知识.当然,几乎可以确定的是,在将来的版本中,python会彻底解决此问题,不用我们这么麻烦了. 先来看看pytho ...

  7. python中中文图标_python中中文图标_matplotlib同时显示中文和特殊符号

    Matplotlib中文显示问题--用例子说明问题 #-*- coding: utf-8 -*- from pylab import * t = arange(-4*pi, 4*pi, 0.01) y ...

  8. Python使用正则表达式识别代码中的中文、英文和数字实例演示

    Python 正则表达式识别代码中的中文.英文和数字 识别中文 识别英文 识别数字 拓展 在文本处理和数据分析中,有时候需要从代码中提取出其中包含的中文.英文和数字信息.正则表达式是一种强大的工具,可 ...

  9. python中文单词_python – 如何显示中文单词,而不是unicode单词

    这是我的代码: from whoosh.analysis import RegexAnalyzer rex = RegexAnalyzer(re.compile(ur"([\u4e00-\u ...

最新文章

  1. Inno Setup制作应用程序安装包
  2. idea中maven导入jar包
  3. oracle登陆认证方式
  4. 4.OD-调试示例1
  5. MySQL速忆笔记(更新中)
  6. win10win键无反应_台式电脑开机主机没反应怎么办 电脑开机主机没反应解决【详解】...
  7. 史上最全:PostgreSQL DBA常用SQL查询语句(建议收藏学习)
  8. 20款绝佳的HTML5应用程序示例
  9. [HDU1754]I Hate It线段树裸题
  10. Java生鲜电商平台-提现模块的设计与架构
  11. android移动开发慕课版本_Android移动开发基础教程(慕课版)
  12. Origin—使用基底线来拟合曲线的各个峰值
  13. 如何让bootbox弹框垂直居中
  14. Android5.1打开Emmagee显示错误
  15. CPA七--应交增值税(转载)
  16. C++ 控制台编译时显示‘ ld returned 1 exit status’
  17. Qt-添加软件图标(logo)
  18. layim之初始化配置
  19. android仿最新版本微信相册--附源码
  20. Python之数据加密与解密及相关操作(hashlib、hmac、random、base64、pycrypto)

热门文章

  1. 12 HTML5中的影音播放
  2. LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android
  3. JS中定义式函数与变量时函数的差别
  4. css(hr元素)水平线的定位
  5. 家庭背景音乐的发展趋势
  6. 先庆祝一下,冠军的心博客园诞生了!!
  7. VS2017 ASP.NET MVC 5.0 开部署问题汇总
  8. element-ui button组件 radio组件源码分析整理笔记(一)
  9. mssql sqlserver 模拟for循环的写法
  10. Android 常见adb命令