MIB iReasoning MIB Browser显示中文

(1)

问题:

iReasoning MIB Browser查询出设备的中文显示为十六进制的,下发中文也能成功。

问题定位:

iReasoning MIB Browser查询出设备上的中文,显示为十六进制通过转码,可以转成汉字,怀疑是软件问题。

问题分析:

中文显示乱码是因为Mib Browser不支持编码识别,默认支持的是ISO-8858-1。

问题结论:

代码本身限制已限制MIB中文字符不能下发,代码不需要再适配。

void serialize(SetHandler &a, AsDisplayString &d)

问题解决方案:

Mib Browser工具换成正确的编码格式。如果想显示中文,可以设置为UTF-8编码格式。

(2)转码过程

啊 == 0xe5 0x95 0x8a
0xe5 0x95 0x8a 是 UTF-8 编码格式中的三个字节,可以转换为对应的中文字符。将这些字节解码成中文字符的过程如下:

将 0xE5 0x95 0x8A 解码为 Unicode:

拆分二进制:1110xxxx 10xxxxxx 10xxxxxx

将 0xE5 0x95 0x8A 替换为二进制格式:

0xE5 -> 1110 0101
0x95 -> 10 010101
0x8A -> 10 001010
移除前导位并连接:

1110xxxx -> 1110
10xxxxxx -> 0101 0101
10xxxxxx -> 0010 1010
得到二进制码:0101 0101 0100 1010 (拼接后除去前导位)

转换为十六进制:554A

将 554A转换为 Unicode 字符:啊

因此,0xE5 0x95 0x8A 表示的中文字符是 “啊”。

============================================
我 == 0xe6 0x88 0x91
0xe6 0x88 0x91 是 UTF-8 编码格式中的三个字节,可以转换为对应的中文字符。解码过程如下:

拆分二进制:1110xxxx 10xxxxxx 10xxxxxx

将 0xE6 0x88 0x91 替换为二进制格式:

0xE6 -> 1110 0110
0x88 -> 10 0010 00
0x91 -> 10 010001
移除前导位并连接:

1110xxxx -> xxxx
10xxxxxx -> xxxxxx
10xxxxxx -> xxxxxx
得到二进制码:0110 0010 0001 0001 (拼接并仅考虑有效位)
转换为十六进制:6211

将 6211 转换为 Unicode 字符:我

因此,0xE6 0x88 0x91 表示的中文字符是 “我”。

============================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值