Python编码记录
2023-09-09 23:43:19
字节流和字符串
当使用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
最新文章
- 2.[WP Developer体验Andriod开发]Andriod Studio结合Visual Studio Emulator for Android调试Android App
- 关于WPF中RichTextBox失去焦点后如何保持高亮显示所选择的内容
- Linux下NDK编译FFMPEG包含neon参数
- 分区还原工具(DiskGenius)
- windows上JSP开发环境全搭建
- makefile中的target到底代表什么?
- Careercup - Google面试题 - 5634470967246848
- qt创建android项目后需要加入的参数
- [读书笔记]算法(Sedgewick著)&#183;第一章(1)
- HDU 2517 棋盘分割
- 【HDU 1828】 Picture (矩阵周长并,线段树,扫描法)
- 开始学习编程了…… 2015年九月七日 …… 31岁的Me.
- 关于js中 document.body.scrollTop 不能返回正确值的原因
- Linux一键安装web环境全攻略(阿里云服务器)
- jQuery Validation让验证变得如此容易(一)
- web.py 学习(二)Worker
- HTML 返回顶部
- 搭建基于Docker社区版的Kubernetes本地集群
- 【BZOJ3999】[TJOI2015]旅游(Link-Cut Tree)
- 出现error: command &#39;x86_64-linux-gnu-gcc&#39; failed with exit status 1