python编码格式改为utf8_Python3编码问题Unicodeutf-8bytes
互转⽅法
为什么需要本⽂,因为在对接某些很⽼的接⼝的时候,需要传递过去的是16进制的hex字符串,并且要求对传的字符串做编码,这⾥就介绍了utf-8 Unicode bytes 等等。
#英⽂使⽤utf-8 转换成16进制hex字符串的⽅法
newstr = 'asd'
b_str = bytes(newstr,encoding='utf-8')
print(b_str)
hex_str = b_str.hex() #将bytes类型转换成16进制的hex字符串
print(hex_str) #字节码转16进制hex的⽅法unicode文件格式
print(bytes.fromhex(hex_str).decode('utf-8')) #将16进制hex字符串转换成bytes,然后在转换成字符串
print(type('中⽂'.encode('utf-8')),'中⽂'.encode('unicode_escape'),'中⽂123456'.encode('unicode_escape').decode('utf-8'))
#中⽂转换成Unicode的⼀种⽅法之⼀
u_str = '中⽂123456'
b_str = bytes(u_str,encoding='unicode_escape')
h_u_s = b_str.hex()print ("\u4e2d\u6587") #Unicode编码可直接输出
#中⽂使⽤Unicode转换成bytes再转换成16进制hex⽅法 包含英⽂和数字
u_cn = '中⽂asd123'
hex_msg = bytes(u_cn,encoding='utf_16_be').hex()
#这是特殊要求下最终的解决⽅案
#注意在Python3中已经没有了直接将字符串变成bytes或者Unicode的⽅法了
#也就是说,在Python中 u'中⽂'已经不再奏效
#bytes转str
b_str = bytes('中⽂',encoding='utf-8')
print(b_str.decode()) #直接输出为普通字符串
以上这篇Python3编码问题 Unicode utf-8 bytes互转⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持我们。
时间: 2018-10-24
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论