【问题标题】:Python3 decode bytes [closed]Python3解码字节[关闭]
【发布时间】:2021-04-14 17:16:14
【问题描述】:

尝试解码字节

2k2P3PKIfViQ1L6TTc7kYks6bpeat6pPH9qRrNcj1S2195TYz\x88}\x88\x88JKgqzeXz96zKrTX05D9bkJf1yCf

有没有办法将 \x88 转换为 letter隐藏它.

试试这个

s = b'2k2P3PKIfViQ1L6TTc7kYks6bpeat6pPH9qRrNcj1S2195TYz\x88}\x88\x88JKgqzeXz96zKrTX05D9bkJf1yCf'
d = s.decode('utf-8')

但出现错误

*** UnicodeDecodeError: 'utf-8' codec can't decode byte 0x88 in position 64: invalid start byte

有什么帮助吗??提前谢谢...

【问题讨论】:

  • 如何解码我发布的这个随机字符串? 并不是一个真正可以回答的问题。那个字符串是从哪里来的?
  • @KenWhite 我想将其转换为u+0088
  • 如果它首先不是 UTF-8 内容,则无法通过解码神奇地将其转换为 utf-8。同样,字符串从何而来,是什么让你认为它应该是 UTF-8 编码的?在不知道随机字符串的情况下将随机字符串扔进解码函数是行不通的。

标签: python-3.x encode


【解决方案1】:

为什么你认为它是 UTF-8? UTF-8 是一种特定自检编码,你不能只用它来解码随机字节。如果您只想将每个字节转换为等效的 Unicode 序数,请使用latin-1 进行解码。使用cp1252 解码甚至可以生成有用的可打​​印字符。或者选择任何其他每个字符一个字节的 ASCII 编码,看看它是什么样子的。不知道它应该是什么意思,任何 1-1 字节的文本编码有效,它是你程序的逻辑决定它是否正确。

【讨论】:

  • 我想转为u+0088。有办法吗??
  • @CamBoKiDz:是的,这是我建议的第一个,latin-1,它是等效 Unicode 序数映射的严格字节值。结果中它仍然看起来像\x88(它不是可打印字符,它是 C1 控制代码),但它会成功解码。
  • 我想用那个加密来发送 json。但是,我不能,因为它包含 \x88
  • 您希望它转换为实际的字符串'u+0088',而不是与\u0088 关联的Unicode 文字值?
  • 是的。 :(
猜你喜欢
  • 2019-03-16
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2011-03-10
  • 2010-09-26
  • 1970-01-01
相关资源
最近更新 更多