当前位置: 首页 > 编程笔记 >

Python3编码问题 Unicode utf-8 bytes互转方法

岳锦
2023-03-14
本文向大家介绍Python3编码问题 Unicode utf-8 bytes互转方法,包括了Python3编码问题 Unicode utf-8 bytes互转方法的使用技巧和注意事项,需要的朋友参考一下

为什么需要本文,因为在对接某些很老的接口的时候,需要传递过去的是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的方法
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互转方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍详谈PHP编码转换问题,包括了详谈PHP编码转换问题的使用技巧和注意事项,需要的朋友参考一下 最近恰好要用到unicode编码的转换,就去查了一下php的库函数,居然没找到一个函数可以对字符串进行Unicode的编码和解码!也罢,找不到的话就自己实现一下了。。。 Unicode和Utf-8编码的区别 Unicode是一个字符集,而UTF-8是Unicode的其中一种,Unicode是

  • 我有一个(非常简单的)java Spring Boot/REST服务,它从输入中呈现PDF并使用IntelliJ对其进行测试。 我使用pdfbox作为创建此类pdf的工具。 一个特点是,除了它想要的常规内容外,客户端还可以将附件作为字节[]提供。 当用户尝试该服务时,最终文档只有附件部分的空白页。 使用IntelliJ和HTTP REST客户端进行了尝试,但遇到了相同的问题 当我注意到使用post

  • 当从其中一个web服务获取数据时,引号(“)将显示为(?)当我使用Rest模板时。我在chrome上的postman中测试了web服务,并给出了正确的字符。我尝试编码UTF-8,但没有成功。 我检查了以下是从Web服务提供商编码: 高速缓存控制→私有连接→关闭内容编码→gzip内容长度→3407内容类型→text/xml; charset=ISO-8859-1日期→周三,2015 13:35:53

  • 最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)在使用Ant的原始serverA上编译良好( ),但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,如“用于编码GBK的Unmappable character”(Unmappable character for encoding GBK)。(JDK版本相同)

  • 问题内容: 我在Python 3.1上编写了一个简单程序,但偶然发现了这一点: 如果我在IDLE上运行它,则将按预期方式工作-打印,然后添加两个点(每秒一个),然后等待输入。 问题是,当我双击.py来执行文件时,它在python.exe而不是pythonw.exe上运行,并且发生了奇怪的事情:它总是连接在一起,即让我等待2秒钟,然后打印整个字符串一次。为什么会这样?有没有办法避免在终端中发生这种情

  • 本文向大家介绍Python3 解决读取中文文件txt编码的问题,包括了Python3 解决读取中文文件txt编码的问题的使用技巧和注意事项,需要的朋友参考一下 问题描述 尝试用Python写一个Wordcloud的时候,出现了编码问题。 照着网上某些博客的说法添添改改后,结果是变成了“UnicodeDecodeError: ‘utf-8' codec can't decode byte…”这个错误