2016-09-21 4 views
0

私はバッファから文字列とその長さをアンパックするのを探しています。例えばパックし、pythonで正しいフォーマットで解凍

このバッファから(4 'Gégé')を取得するには:誰かが行う方法を

'\ X00 \ x04G \ xE9g \ XE9' Bを知っていますか?

+1

それは(便利な)答えを受信したとき、あなたの質問を削除しないでください。 –

答えて

1

長さのデータは、ビッグエンディアンの符号なし16ビット整数のように見え、文字列データはLatin1エンコーディングのように見えます。それが正しいなら、あなたはこのようにそれを抽出することができます。

from struct import unpack 

def extract(buff): 
    return unpack(b'>H', buff[:2])[0], buff[2:].decode('latin1') 

buff = b'\x00\x04G\xE9g\xe9' 
print(extract(buff)) 

出力

(4, 'Gégé') 
関連する問題