【问题标题】:Convert hex into string literal: replacing 0x with \x将十六进制转换为字符串文字:用 \x 替换 0x
【发布时间】:2018-12-10 23:12:44
【问题描述】:

我需要发送一个由十六进制值组成的命令,例如:“\x06\x01\x00\x44”。 然后使用内置的 .encode() 函数将字符串编码为二进制,然后发送到 Telnet。

由于我不明白的原因,如果字符串使用其他十六进制格式(0x 而不是 \x)进行格式化,这将不起作用:“0x060x010x000x44”,所以我试图只使用 \x。

我需要在转换之前将一个值插入到命令中,但我不知道如何接受整数输入并将其转换为十六进制字符串文字。

我可以这样做:

input_int = 100
hex_value = hex(input_int)

但这只会让我得到 hex_value = '0x64',它与 '\x64' 不同。

是否有我遗漏的快捷方式,或者有什么方法可以将 int 直接转换为十六进制文字字符串?

(顺便说一下,我使用的是 Python 2.7。)

【问题讨论】:

  • 考虑用python3运行这个项目。
  • 很遗憾我不能,该项目目前仅限于 2.7。

标签: python string hex escaping data-conversion


【解决方案1】:

原来 chr() 是我要找的。它将整数值转换为具有正确值的 ASCII 字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-07
    • 2018-01-31
    • 1970-01-01
    • 2021-10-06
    • 2018-01-22
    • 2016-03-15
    • 1970-01-01
    • 2018-01-26
    相关资源
    最近更新 更多