如何把bytes类型转换为string类型?

这里指的转换不是bytes.decode这种转换。

假如我有一个'中文'.encode('gbk')得到的b'\xd6\xd0\xce\xc4',如何才能得到str类型的'\xd6\xd0\xce\xc4'要求使用Python3环境

阅读 6.5k
3 个回答

Python3

>>> print(''.join(r'\x%02x'%n for n in '中文'.encode('gbk')))
\xd6\xd0\xce\xc4

主要是题主 没描述清楚~
很简单

>>> '中文'.encode('gbk').decode('l1')
'ÖÐÎÄ'
b = '中文'.encode('gbk')
s = str(b)[1:]

print(s) # '\xd6\xd0\xce\xc4'
print(s.strip("'")) # \xd6\xd0\xce\xc4

@同意并接受 @谷歌插件WD开发者 的答案,可以生成r'\xd6\xd0\xce\xc4'格式的字符串,方法比较巧妙,也很感谢两位的回答。

我想要的结果是'\xd6\xd0\xce\xc4',也就是print之后是'ÖÐÎÄ'的。受 @同意并接受 启发,想到了这个方法:

>>> ''.join(chr(i) for i in '中文'.encode('gbk'))
'ÖÐÎÄ'

就这样。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进