0

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

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

また、返されたデータは別の意味で悪いことにも言及する必要があります。スペースを含む Hex-String は適切なデータ値を返しますが、\xs を含む String は正しくない値を返します。

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

4

1 に答える 1

0

PyDev は、Java コンソールのエンコーディングを使用して sys.setdefaultencoding(encoding) を設定するという別のことを行います (コンソールに Unicode を出力しても、Unicode が ascii としてデコードされないと言って失敗することはありません)。これが問題かどうかを確認するには、eclipse\plugins\org.python.pydev\PySrc\pydev_sitecustomize\sitecustomize.py に移動して、次の行にコメントを付けます: sys.setdefaultencoding(encoding)

于 2012-01-04T17:47:33.983 に答える