2016-10-18 9 views
0

私はPythonパックで16進文字列をパックしたいと思います。 ここに私のコードです:structモジュールを使用して16進文字列をパックしますか?

import struct 
query='430401005001' 
q= ('%x' % int(query, 16)).decode('hex').decode('utf-8') 
qpacked=struct.pack('6s',str(q)) 

クエリは16進文字列です。 文字列を '53040600d0010100'に変更し、6を8に変更するとコードが機能しません。 このような16進文字列をパックする良い方法はありますか?

+1

なぜあなたはUTF-8として任意のバイナリデータをデコードしていますか? –

答えて

0

文字列が長さ6(6s)までパックしたいと言っているため、文字列が切り詰められます。その数を増やすか、文字列を切り捨てるようにしなければなりません。

また、文字列のエンコーディングでジャグリングをやめ、ちょうどquery.decode('hex')で十分です。

+0

私は6から12に変更しましたが、Pythonエラーは 'utf8'です。コーデックはバイト0xd0をデコードできません –

関連する問題