Net-SNMP возвращает HexString, а затем просто String (Eclipse и Pydev) - PullRequest
0 голосов
/ 03 января 2012

Я делаю snmpget, используя Net-SNMP.В частности, я посылаю команду через os.popen ("и т. Д.").Возвращаемое значение представляет собой шестнадцатеричную строку, разделенную пробелами, что-то вроде этого: «A0 f0 D0».Возвращаемое значение иногда приходит в форме: «Hex-String: A0 f0 D0 ..», но иногда приходит в форме «String: \ xA0 \ xf0 \ xD0», где, как вы можете видеть, пробелы заполнены «\Икс".У кого-нибудь есть идея относительно того, почему это может происходить?Я бы предпочел, чтобы возвращаемое значение было HEX-String с пробелами, а не \ x.

. Следует отметить, что я использую Eclipse с Pydev.Затем я запустил тот же код в pyscripter и вернул мое значение Hex-String.Я снова запустил его в Pyscripter, а затем \ x вернулся.Это как-то связано с незамкнутым каналом?

Я должен также упомянуть, что данные, которые я получаю, неверны в другом смысле.Hex-String с пробелами возвращает правильные значения данных, но String with \ xs возвращает неверные значения.

Я использовал Wireshark, и похоже, что запрос get точно такой же, как и запрос, отправленный изMIB.Запрос MIB возвращает правильные данные, в то время как запрос Eclipse по-прежнему возвращает неверные данные.

1 Ответ

0 голосов
/ 04 января 2012

PyDev делает одну вещь по-другому, а именно: sys.setdefaultencoding (encoding) с кодировкой консоли Java (так что если вы печатаете Unicode в консоли, он не потерпит неудачу, говоря, что Unicode не декодируется какASCII).Чтобы увидеть, если это ваша проблема, вы можете перейти к eclipse \ plugins \ org.python.pydev \ PySrc \ pydev_sitecustomize \ sitecustomize.py и прокомментировать строку, которая делает: sys.setdefaultencoding (encoding)

...