我有下面的代碼:刪除壞字符 「 XC2」 Python字符串
string_msg = '\x80\x01\x00\x00\x00\x00\x53\x58\x00\x1C\x00\x00\x00\x08\x00\x01\x00\x74\x00\x00\x00\x0A\x00\x54\x00\x00\x00\x03'
print(string_msg)
if sys.version < '3':
print(":".join("{:02x}".format(ord(c)) for c in string_msg))
else:
print(":".join("{:02x}".format(c) for c in string_msg.encode()))
在Python 2,結果是:
80:01:00:00:00:00:53:58:00:1c:00:00:00:08:00:01:00:74:00:00:00:0a:00:54:00:00:00:03
但是在Python 3,結果是:
c2:80:01:00:00:00:00:53:58:00:1c:00:00:00:08:00:01:00:74:00:00:00:0a:00:54:00:00:00:03
現在我需要在python 3中執行此代碼,所以我必須在開始時刪除第一個字節以刪除「c2」,一切都會好的,b UT嘗試這樣做,用的代碼太多件我在這個論壇上發現,如:
string_msg = string_msg[1:]
string_msg.replace('\xC2', '')
string_msg = ''.join([i if ord(i) < 130 else '' for i in string_msg])
結果總是相同的:
01:00:00:00:00:53:58:00:1c:00:00:00:08:00:01:00:74:00:00:00:0a:00:54:00:00:00:03
也卸下第二個字節80
,所以我的問題是:我怎樣才能刪除第一個字節c2
,爲什麼當我試圖做第二個字節也被刪除?
非常感謝,它解決了這個問題。我不知道python2和python3之間的這個小差別。再次感謝。 – tonytr