6

通信しているデバイスがバイナリデータを送信すると、そのほとんどを回復できます。ただし、一部のバイトが欠落しているように見え、非標準の文字に置き換えられています。たとえば、1つの個別の出力は次のようになります。

\xc4\xa5\x06\x00.\xb3\x01\x01\x02\x00\x00\x00=\xa9

ピリオドと等号は、16進形式の従来のバイトである必要があります(これは別のアプリケーションで確認しました)。また、「)」や「s」などの他の奇妙な文字が表示されることもあります。これらの文字は通常、まったく同じ場所にあります(これは、デバイスに渡したコマンドによって異なります)。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

12

次のようなものを使用して出力を表示していますか?:

print output

バイトの一部がたまたま印刷可能な文字に対応している場合、それらは文字として表示されます。これを試して:

print output.encode('hex')

すべてのバイトの16進値を表示します。

于 2011-10-03T21:48:36.203 に答える