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