127时,默认解析便会出现问题。 //汇站网 https://w...">

Python编码记录与学习笔记

2023-11-20 0 369

Python编码记录与学习笔记

字节流和字符串

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

//汇站网 https://www.huizhanii.com
"abc"--[97][98][99]

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

//汇站网 https://www.huizhanii.com

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

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

//汇站网 https://www.huizhanii.com
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 对象然后写入到文件。

//汇站网 https://www.huizhanii.com

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

本文章已结束,如转载请注明:汇站网 » Python 编码记录与学习笔记

收藏 (0)

微信支付 微信扫一扫

支付宝支付 支付宝扫一扫

打赏二维码
点赞 (0)

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务