2012-01-03 3 views
0

Net-SNMPを使用してsnmpgetを実行しています。具体的には、os.popen( "etc")でコマンドを送信しています。返される値は、 "A0 f0 D0"のようなスペースで区切られた16進文字列です。返される値は、時には "Hex-String:A0 f0 D0 .."という形式で表示されますが、 "String:\ xA0 \ xf0 \ xD0"の形式で表示されることがあります。バツ"。なぜ誰かがこれが起こっているかもしれないという考えを持っていますか?返された値が、\ xではなく、スペースで区切られたHEX文字列だったら、私はそれを好むでしょう。Net-SNMPはHexStringを返してからString(EclipseとPydev)を返します。

PydevでEclipseを使用していることに注意してください。私はpyscripterで同じコードを実行し、Hex-Stringの値を返しました。 Pyscripterでもう一度実行した後、\ xが返されました。これは閉鎖されていないパイプと関係がありますか?

私が戻ってくるデータは、別の意味では悪いことにも言及する必要があります。スペースを含む16進文字列は適切なデータ値を返しますが、\ xsを含む文字列は正しくない値を返します。

私はWiresharkを使いました。getリクエストは、MIBから送信されたものとまったく同じように見えます。 MIBリクエストは正しいデータを返しますが、Eclipseリクエストは依然として不良データを返します。

答えて

0

PyDevはjavaコンソールのエンコーディングを使ってsys.setdefaultencoding(エンコーディング)を設定しています(ユニコードをコンソールに表示すると、ユニコードがデコードしないアスキーとして)。これがあなたの問題かどうかを確認するには、eclipse \ plugins \ org.python.pydev \ PySrc \ pydev_sitecustomize \ sitecustomize.pyにアクセスし、以下の行をコメントアウトしてください:sys.setdefaultencoding(encoding)

関連する問題