2016-07-15 48 views
0

在Python2一個可能:Python3字符串表示

>>> struct.pack(">f", 125.4) 
>>> 'B\xfa\xcc\xcd' 

我怎樣才能得到Python3相同的字符串?我嘗試了不同的編碼,但可以準確得到它。

+0

你不想只是刪除前導零? Python3給出** b「\ x00 \ x00 \ x00 \ x00 \ xcd \ xcc \ xfa8」** – UpmostScarab

+0

我不知道您輸入的是什麼樣的包格式,但我不認爲這是我上面顯示的內容。但即使如此,你顯示字節,我想要一個字符串。 –

回答

0

我能夠通過使用'latin1'編碼解碼字節來獲得正確的字符串。它在Python3控制檯中看起來與在Python2控制檯中看起來不一樣,但程序解釋的是相同的。

Python2:

>>> struct.pack(">f", 125.4) 
'B\xfa\xcc\xcd' 

Python3:

>>> b = struct.pack(">f", 125.4) 
>>> b.decode("latin1") 
<something that cannot be pasted>