0

我们的产品中有 snmp 代理,它将系统警报发送到 snmp 服务器,我们的警报可能是 Unicode。我们使用 3rd 方库进行发送,默认情况下将字符串编码为 ASKII 字节数组。最后,我们在消息上得到了垃圾。

snmp 协议是否有 unicode 支持?

4

2 回答 2

0

正如 Lex Li 已经提到的,SNMP 不关心字符串编码。OCTET STRING 只是一个字节数组。因此,当您必须处理本地化/国际化时,正确的解决方案绝对是使用 UTF-8 编码/解码。但请记住,SNMP4J 和许多其他库在方法中将字节数组视为 ASCII 字符串,例如toString(). 所以你必须编写自己的扩展。

于 2017-06-29T16:23:24.593 回答
0

正确本地化消息是 SNMP 代理的工作。正确解码消息是 SNMP 管理工具的工作。

WireShark 跟踪将显示您的代理是否在网络上放置了正确的字节数组。如果您的消息是 Unicode,则字节应以有效的 Unicode 前导码开头。

此外,根据您的设备类型,代理的 MIB 中还有其他区域可帮助管理工具正确解码消息。

例如,打印机的 prtLocalizationTable 应该显示对 Unicode 的支持,而 prtGeneralCurrentLocalization 帮助管理工具知道如何正确解码消息。

于 2017-07-01T14:20:32.710 回答