码迷,mamicode.com
首页 > 编程语言 > 详细

Python编码记录

时间:2016-04-18 10:11:36      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

字节流和字符串

当使用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

Python编码记录

标签:

原文地址:http://www.cnblogs.com/houkai/p/5403268.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!