Python 字符串到字节的转换。双反斜杠问题

标签 python string byte

<分区>

我有一个问题。我有这个字符串:

a=O\x8c\x90\x05\xa1\xe2!\xbe

如果我使用:

c=str.encode(a)

这是结果:

b'O\\x8c\\x90\\x05\\xa1\\xe2!\\xbe'

我需要那些双反斜杠是单反斜杠,我真的需要那种类型的数据是 BYTES。我需要归还这个:

c=b'0\x8c\x90\x05\xa1\xe2!\xbe'

然后输入(c)==bytes 有什么想法吗?

最佳答案

您可以使用 str.decode() 编码为 unicode-escape 。然后使用所需的编码将其解码回来以取回您的字节数组。示例 -

c = a.decode('unicode-escape').encode('<required encoding>')

演示 -

>>> a
b'O\\x8c\\x90\\x05\\xa1\\xe2!\\xbe'
>>> c = a.decode('unicode-escape').encode('ISO-8859-1')
>>> c
b'O\x8c\x90\x05\xa1\xe2!\xbe'

关于Python 字符串到字节的转换。双反斜杠问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33257875/

相关文章:

arrays - 从像素阵列问题中获取 NSImage (Swift)

java - 如何将字符串转换为字节

python - 如何在发生测试失败/错误时为 py.test 打印堆栈跟踪?

python - 将列表转为字符串的语义

objective-c - 可选字符串与空字符串

C++ 和 SQLite - 如何执行由用户输入形成的查询?

python - 如何访问特定列值?

python - 如何对 pandas DataFrame 中的内部列表进行排序?

java - 如何在文件中搜索字符串

java - 为什么输入流的返回类型不是int?