我有此字符串"\x00\x12\xf8\x05\x74\xa2"
,和以下結果:逃逸UTF8解碼(「 X74」到「T」)
>>> s = "\x00\x12\xf8\x05\x74\xa2"
>>> s
'\x00\x12\xf8\x05t\xa2'
>>> print s
?t?
>>> print repr(s)
'\x00\x12\xf8\x05t\xa2'
>>> s = r"\x00\x12\xf8\x05\x74\xa2" <=== (I want this result but cannot use r'')
>>> s
'\\x00\\x12\\xf8\\x05\\x74\\xa2'
>>> print s
\x00\x12\xf8\x05\x74\xa2
你可以看到該串中的'\x74'
被轉化成相應的utf8字符't'
自動在上半場輸出。我實際上有一個自定義字典來解碼,所以我不想這個自動轉換。
如果我可以在後半部分輸出中保留與r'string'
相同的字符串,那將是最好的。顯然repr
不起作用,有沒有其他方法可以做到這一點?
更新:我想要這個,因爲我需要將每個\xhh
中的hh
轉換爲int數。
在此先感謝。
你想通過這個解決什麼問題? – Daenyth 2012-08-13 16:35:10
如果你的意圖是逐字節地使用字符串,那麼不管它如何回顯給你,它都會有相同的內部表示。如果你想瀏覽你看到的字符,而不使用'r',那麼你需要手動轉義每個反斜槓 – 2012-08-13 16:37:25
@Daenyth我需要將'\ xhh'中的每個十六進制'hh'映射到int。使用'int('\ xhh',16)無法工作。 – Yulong 2012-08-13 16:40:46