2016-10-21 12 views
0

私は自分のPCとSPSユニットの間でソケット通信を使用しています。 Pythonのbytestring()を使用して、通信するcharingバイトです。 PC側では、数字のコマンド(整数)を切り替える必要がありますが、それらをバイトテストに入れてソケット経由で送信する必要があります。 UTF-8:8 - > \ t、9 - > \ nによって変更されるため、8,9,12以上の値はSPS側でエラーを生成します。 このデータを実際の16進数で、UTFをコードなしでどのように保つことができますか?Bytearrayで実際のバイト値を使用するPython

my_b = bytearray() 
my_b.append(8) #fill with Bytevalues 
my_b.append(9) 
my_b.append(10) 
my_b.append(11) 
my_b.append(12) 
my_b.append(13) 
print (my_b) 
>> bytearray(b'\x08\t\n\x0b\x0c\r') 

答えて

0

変更されていません。 \t,\nおよび\rは、バイト値9,10、および13を表現するために単純に組み込まれています。これらの値は、ASCII制御文字(タブ、改行および復帰、特に)です。

od -tx1 /tmp/foo 
0000000 08 09 0a 0b 0c 0d 
0000006 

with open("/tmp/foo", "wb") as f: 
    f.write(my_b) 

は、次に進バイトとして/tmp/fooをダンプ:

は、あなたのコードスニペットの最後に以下の行を追加し、これを証明するために、
関連する問題