HOME | python | [python] ascii轉字串

[python] ascii轉字串

2018/10/15/01:54 , Post in python , 評論(0) , 引用(0) , 閱讀(2870) , Via 本站原創
最近因為專案用python處理strace的結果檔

碰到ascii的output卡了一下,做一個筆記紀錄處理方式

在python3中的字元都是ascii的編碼,\x接兩個16進位的數字就是表示他是ascii

像下面這個例子

string = '\x65\x66\x67'
print(string)


跑出來的結果跟string = 'efg'結果是一樣的

也就是說在程式裡面宣告\x65\x66\x67跟efg是一樣的意思

或是說python用ascii存字串,但是印出來的時候會自動轉成我們看得懂的文字

但是因為strace的結果我先把它存到一個文字檔,再去進行處理

結果\x65\x66\x67讀進來之後就真的變成\x65\x66\x67的一個字串了

但是找了半天很像也沒有可以用的函式去處理這個問題,只好自己土炮一個字一個字轉

a = data.split("\\x")   #首先先切出16進位的部分存到list中
for i in range(1,len(a),1):
    a[i] = chr(int(a[i],16))    #然後一個一個16進位轉成10進位之後再轉成字元
    string = ''.join(a)            #最後在把它串在一起
    string = string.encode('utf-8')     #然後使用utf-8做編碼




發表評論

暱稱

網址

電郵

開啟HTML 開啟UBB 開啟表情 隱藏 記住我 [登入] [註冊]