簡體   English   中英

我不知道為什么我得到兩個反斜杠(python)

[英]I don't know why I get two backslashes (python)

t = '.EA.B2.80.EB.A7.88'

t = t.replace('.','\\x').lower()

string1 = b"\xea\xb2\x80\xeb\xa7\x88"

print(string1.decode("utf-8"))

string2 = bytes(t, "utf-8")

print(string2)

print(string2.decode("utf-8"))

String1 返回了我想要的解碼值,但 string2 返回了兩個反斜杠。 我認為 string1 和 string2 沒有什么不同,但想知道為什么 string2 返回兩個反斜杠。 有人可以回答這個嗎? 感謝您的閱讀!

string1中,反斜杠是bytes文字語法的一部分,用於在結果值中生成正確的字節。

您正在向字符串t添加文字反斜杠。

我不確定這是最好的解決方案,但是您可以將t轉換為可以傳遞給bytesint值序列。

string2 = bytes(int(x, 16) for x in t.strip(".").split("."))

更新:有一些更簡單的東西:

string2 = bytes.fromhex(t.replace(".", ""))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM