ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127 Unicode分为UTF-8和UTF-16。
UTF-8变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码进行处理。 
Python 从 2.2 开始支持 Unicode ,函数 decode( char_set )可以实现 其它编码到 Unicode 的转换,函数 encode( char_set )实现 Unicode 到其它编码方式的转换。 
比如

("你好").decode( "GB2312") 

将得到

u'\u4f60\u597d',
即 "你"和“好"的 Unicode 码分别是 0x4f60 和 0x597d 
再用

(u'\u4f60\u597d').encode("UTF-8")

  

将得到

'\xe4\xbd\xa0\xe5\xa5\xbd'
它是 “你好”的UTF-8编码结果。 
python中使用 unicode的关键:unicode是一个类,函数unicode(str,"utf8")从utf8编码(当然也可以是别的编码)的字符串str生成 unicode类的对象,而函数unc.encode("utf8")将unicode类的对象unc转换为(编码为)utf8编码(当然也可以是别的编码)的字符串。于是,编写unicode相关程序,需要做的事情是 * 获取数据(字符串)时,用unicode(str, "utf8")生成unicode对象 * 在程序中仅使用unicode对象,对程序中出现的字符串常量都以u"字符串"的形式书写 * 输出时,可将unicode对象转换为任意编码输出,使用str.encode("some_encoding")

>>> unicode("你好", "utf8")
u'\u4f60\u597d' >>> x = _ >>> type(x) >>> type("你好") >>> x.encode("utf8")
'\xe4\xbd\xa0\xe5\xa5\xbd' >>> x.encode("gbk")
'\xc4\xe3\xba\xc3' >>> x.encode("gb2312")
'\xc4\xe3\xba\xc3' >>> print x
你好 >>> print x.encode("utf8")
你好 >>> print x.encode("gbk")
???

  

以上是测试结果(Ubuntu 6.06,locale为utf8),注意type(x)和type("你好")的区别。从编码上可以看出utf8编码与gbk不同。在utf8的 locale设置下,打印x按该环境变量编码(我猜我猜我猜猜猜),而打印x.encode("gbk")则是乱码。

最新文章

  1. java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12
  2. 自动attach到iis
  3. Linux中获取本机网络信息的几个函数及应用
  4. Mysql数据库优化
  5. Mvc中把list从View传入Controller
  6. Java中PreparedStatement和Statement的用法区别(转)
  7. linux下面测试网络带宽 (转载)
  8. 一个失误导致微信下载图片接口Token失效
  9. 根据自己的需要适度使用Web开发框架
  10. WPF使用Log4net.dll库的demo(转载加个人观点)
  11. Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术
  12. 使用React改版网站后的一些感想
  13. Opencv基础课必须掌握:滑动条做调色盘 -OpenCV步步精深
  14. F# 之旅(下)
  15. 一、爬虫的基本体系和urllib的基本使用
  16. 实验四 Android程序设计 实验报告
  17. spring boot 业务场景简单,代码完整的demo们
  18. 工具 - vConsole调试工具 在项目中的应用
  19. Docker镜像构建上下文(Context)
  20. 课程二(Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization),第一周(Practical aspects of Deep Learning) —— 4.Programming assignments:Gradient Checking

热门文章

  1. STL容器是否是线程安全的
  2. bootstrap 兼容IE8设置
  3. C# 二叉堆
  4. unity3d 建树篇
  5. iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
  6. Android学习笔记--远程服务的使用
  7. github使用-知乎的某小姐的一篇文章
  8. js简单排序
  9. SQL SERVER 自定义函数 split
  10. 插头DP题目泛做(为了对应WYD的课件)