Python 如何转换\x1b";变成真正的控制字符“;[电子稳定控制系统]”;

Python 如何转换\x1b";变成真正的控制字符“;[电子稳定控制系统]”;,python,command-line-arguments,Python,Command Line Arguments,我得到一个用户编写的字符串作为命令行参数,但问题是我实际上得到了用户编写的内容,这导致字符串“1\x1b2”的长度为6个字符,而不是像我需要的那样将\x1b转换为控制字符 我找了几个小时,什么也没找到。我尝试的每个字符编码都失败了(这是合乎逻辑的,因为它不是控制字符) 除了手动替换字符串“\x1b”(regexp)之外,还有其他方法吗?这实际上是一种已知的编码: 但这可能不是你写越狱的确切背景 我想您只需要知道\x1b是转义…这导致字符串“1\x1b2”的长度为6个字符。。。你确定吗?你能证明它

我得到一个用户编写的字符串作为命令行参数,但问题是我实际上得到了用户编写的内容,这导致字符串“1\x1b2”的长度为6个字符,而不是像我需要的那样将\x1b转换为控制字符

我找了几个小时,什么也没找到。我尝试的每个字符编码都失败了(这是合乎逻辑的,因为它不是控制字符)


除了手动替换字符串“\x1b”(regexp)之外,还有其他方法吗?

这实际上是一种已知的编码:


但这可能不是你写越狱的确切背景

我想您只需要知道
\x1b
是转义…这导致字符串
“1\x1b2”
的长度为6个字符。。。你确定吗?你能证明它确实是一个有6个字符的字符串,而不是仅仅是一个表示吗?你能告诉我们你的代码是如何输入参数和输出长度为6的字符串的吗?哎呀。我间接地使用它;第一个版本深入研究了
编解码器。escape\u decode
,但在这个版本中不需要导入。虽然许多语言使用从C继承的反斜杠转义,但可能存在细微的差异。例如,有些可能不会停止在两个十六进制或三个八进制数字。string_escape编解码器像Python那样专门处理转义。
s = r"1\x1b2"
dec = s.decode('string_escape')
print len(dec), repr(dec)