python重新编码函数 python怎么改编码( 三 )


xxxx.encode/decode('unicode-escape')
输出如下
b'\\u4e2d'还是b'\u4e2d,一个斜杠貌似没影响 。同时可以发现在shell窗口中 , 直接输'\u4e2d'和输入b'\u4e2d'.decode('unicode-escape')是相同的,都会打印出汉字‘中’,反而是'\u4e2d'.decode('unicode-escape')会报错 。说明说明Python3不仅支持Unicode,而且一个‘\uxxxx’格式的Unicode字符可被辨识且被等价于str类型 。
如果我们知道一个Unicode字节码,怎么变成UTF-8的字节码呢 。懂了以上这些,现在我们就有思路了,先decode,再encode 。代码如下:
xxx.decode('unicode-escape').encode()
测试如下:
可以看到最后输出的UTF-8字节与上面的相同 。尝试成功 。所以其他的编码之间的转换 , 大概也是如此 。
最后的扩展
还记得刚刚那个ord吗 。时代变迁,老大哥ASCII被人合并,但ord还是有用武之地 。试试ord('中'),输出结果是20013 。20013是什么呢 , 我们再试试hex(ord('中')),输出结果是'0x4e2d',也就是20013是我们在上文见面了无数次的x4e2d的十进制值 。这里说下hex,是用来转换成十六进制的函数 , 学过单片机的人对hex肯定不会陌生 。
最后的扩展,在网上看到的他人的问题 。我们写下类似于'\u4e2d'的字符,Python3知道我们想表达什么 。但是让Python读取某个文件的时候出现了'\u4e2d',是不是计算机就不认识它了呢?后来下文有人给出了答案 。如下:
import codecs
file = codecs.open( "a.txt", "r", "unicode-escape" )
u = file.read()
print(u)
python基础——编码、bytes与str转换及格式化 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
最常用的编码是UTF-8,如果没有特殊业务要求,请牢记仅使用UTF-8编码 。
在爬虫中会经常遇见 , 需要用encode和decode来进行互相转码
str转bytes
注意,含有中文字符的str不能用acsii格式转码
bytes转str
** 程序中经常会遇到个别字符转码不成功而报错,因此在decode方法中需要这个参数errors='ignore'忽略错误的字节
注意格式化的数据格式
【python重新编码函数 python怎么改编码】关于python重新编码函数和python怎么改编码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读