首页 > 解决方案 > SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \xXX escape

问题描述

我有一个问题,我需要将十进制数转换为十六进制。到目前为止,我遇到的更多问题是我需要将结果更改为放置 \x,例如,如果转换给出“0x63dd”,我需要它为“\x63\xdd”,但我不能放置\x,因为这个给出错误

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes 
    in position 0-1: truncated \ xXX escape
Decimal = 25565   
Hexa = hex(Decimal).replace("0x","")
N1 = Hexa[:2]
N2 = Hexa[2:]
print("\x"+N1)
print("\x"+N2)

标签: pythonpython-3.xunicode

解决方案


\x该错误是由具有特殊含义的事实引起的 。即用于编码的东西。如果您想将文字添加backslash and x到您需要做的字符串中"\\x" + N1。(第一个 backslas 逃脱了第二个。)

所以你的代码将变成以下

Decimal = 25565   
Hexa = hex(Decimal).replace("0x","")
N1 = Hexa[:2]
N2 = Hexa[2:]
print("\\x"+N1)
print("\\x"+N2)

并返回

\x63
\xdd

推荐阅读