python 有str object 和 unicode object 两种字符串,都可以存放字符的字节编码,但是他们是不同的type,这一点很重要,也是为什么会有encode(编码)和decode(解码)。

encode 和 decode在pyhton 中的意义可表示为:

encode
         unicode -------------------------> str
         unicode <--------------------------str
                                    decode

几种常用法:

str_string.decode('codec') 是把str_string转换为unicode_string, codec是源str_string的编码方式;
unicode_string.encode('codec') 是把unicode_string 转换为str_string,codec是目标str_string的编码方式;
str_string.decode('from_codec').encode('to_codec') 可实现不同编码的str_string之间的转换;

比如:

 >>> t='长城'
>>> t
'\xb3\xa4\xb3\xc7'
>>> t.decode('gb2312').encode('utf-8')
'\xe9\x95\xbf\xe5\x9f\x8e'

str_string.encode('codec') 是先调用系统的缺省codec去把str_string转换为unicode_string,然后用encode的参数codec去转换为最终的str_string. 相当于str_string.decode('sys_codec').encode('codec')。

unicode_string.decode('codec') 基本没有意义,unicode 在python里只用一种unicode编码,UTF16或者UTF32(编译python时就已经确定),没有编码转换的需要。

注:缺省codec在site-packages下的sitecustomize.py文件中指定,比如:

 import sys
sys.setdefaultencoding('utf-8')

最新文章

  1. Javascript设置对象属性为&quot;只读&quot;
  2. LeetCode 【Single Number I II III】
  3. 开个坑, 写个阿里云开放储存服务(OSS)的C++版SDK以及客户端
  4. jmeter性能测试实战-web登录测试
  5. [转自51CTO]ITIL与ISO20000的关系
  6. 浮点数转换为人名币读法字符串(JAVA)
  7. ServiceStack.Redis常用操作 - 事务、并发锁
  8. Mifare 0简介
  9. hdu 3631 Shortest Path(Floyd)
  10. ASP.NET 2.0服务器控件开发的基本概念(转载)
  11. 夹缝中求生存-在一无所有的php虚拟主机环境下利用smtp发送邮件(二)
  12. Flask 学习 十 博客文章
  13. C#获取邮件客户端保存的邮箱密码
  14. WPF 使用 Direct2D1 画图入门
  15. mysql 案例 ~ 瘦身mysql系列(1)
  16. Spark(Python) 从内存中建立 RDD 的例子
  17. 基于zookeeper的主备切换方法
  18. 洛谷P1592 互质
  19. 請問 localtime() 為什麼不會造成 memory leak?
  20. wusir 线程间操作无效: 从不是创建控件“”的线程访问它 解决办法

热门文章

  1. mysql 数据备份及数据迁移
  2. Linux多网卡负载均衡 : bond
  3. 显示AVI文件的桢数
  4. Python 字典 get() 方法
  5. RN中关于ListView的使用
  6. hdoj1014 互质
  7. 第八章&#160;高级搜索树 (xa4)红黑树:删除
  8. 15-js提交表单的简单检测实例
  9. cin 不能直接读入空格,可以用getline(PAT统计字符数)
  10. Visual Event查看页面相关绑定事件