字节流和字符串

当使用Python定义一个字符串时,实际会存储一个字节串:

"abc"--[97][98][99]

python2.x默认会把所有的字符串当做ASCII码来对待,但是当字节值>127时,默认解析便会出现问题。

x="abc"+chr(150)
print repr(x)
#'abc\x96'
u"Hello" + x
#UnicodeDecodeError: 'ASCII' codec can't decode byte

这就需要我们拿到一个字节流后,调用它的解码方式来创建字符串(Unicode对象)

x="abc\x80\x93"
x=x.decode("utf-8")
print type(x)
<type 'unicode'>
y= "abc"+char(150)
y=y.decode("windows-1252")
print type(y)
<type 'unicode'>
print x+ y
#abc-abc-

codecs模块

在处理字节流的时候可以提供很大的帮助。你可以用定义的编码来打开文件并且你从文件里读取的内容会被自动转化为Unicode对象,也可以以指定编码处理Unicode对象然后写入到文件。

import codecs
f=codecs.open('0.txt', 'w', 'utf-8')
f.write(u"\u2013")
f.close()

参考:http://www.tuicool.com/articles/2MVRVv7

最新文章

  1. 规则引擎集成接口(九)Java类对象
  2. 深入浅出Symfony2 - 如何提高网站响应速度 [转]
  3. Linux多台服务器之间的文件共享
  4. 【KVM安装】在Centos6.8中安装KVM
  5. C语言itoa()函数和atoi()函数详解(整数转字符)
  6. 题解西电OJ (Problem 1004 -亚特兰提斯)--最小生成树
  7. POJ 2749--Building roads(2-SAT)
  8. asp.net mvc vs web form
  9. &lt;bean id=&quot;validator&quot; class=&quot;org.springframework.validation.beanvalidation.LocalValidatorFactoryBean&quot;/&gt;
  10. cisco 2950 3550 3750 系列交换机密码破解
  11. 使用命令行编译as文件成swf
  12. docker 内部组件结构 -- docker daemon, container,runC
  13. JavaScript事件(二)
  14. Mongodb 无法启动 windows Mongodb 无法启动 couldn&#39;t connect to server
  15. C++显式类型转换
  16. Extensions disabled by Chrome
  17. 51nod - 1163 巧妙的并查集 O(1)维护区间
  18. 【转载】如何简单地理解Python中的if __name__ == &#39;__main__&#39;
  19. golang中并发的相关知识
  20. Xamarin XAML语言教程使用方法设置进度条进度

热门文章

  1. 深入理解DIP、IoC、DI以及IoC容器
  2. 前端学HTTP之Web主机托管
  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述
  4. Android调用微信登陆、分享、支付
  5. C#数组,List,Dictionary的相互转换
  6. javascript 判断参数类型大全
  7. Mybatis XML配置
  8. 《LoadRunner12七天速成宝典》签售会2016-12-17北京
  9. 后缀数组的倍增算法(Prefix Doubling)
  10. EC笔记:第4部分:22、所有成员都应该是private的