免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3631 | 回复: 6
打印 上一主题 下一主题

uinicode的翻译问题,不明白 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-27 10:50 |只看该作者 |倒序浏览
1可用积分
我看到有个说明书这样写:

报文是: 测试信息

译 码 为 : 08606D559C53D18D22 ( 08 是 报 文 译 码 后 长 度 , 数 据606D559C53D18D22是“测试信息”的unicode编码,按照内存的编码格式倒过来了)。

不太明白是怎样按照内存编码格式倒转的。我用 unicode转化器得到‘测试信息’编码的是4B6DD58BE14F6F60

希望能帮个忙解释一下

最佳答案

查看完整内容

不好意思,前几天到外地去了,没及时回复。在UltraEdit里面捣鼓了一下,“测试信息”四个字的UNICODE编码的确是,0x4B 0x6D 0xD5 0x8B 0xE1 0x4F 0x6F 0x60“0x60 0x6D 0x55 0x9C 0x53 0xD1 0x8D 0x22”这段报文是怎样编的码,我就不知道了。但可以肯定的是,不会是“测试信息”四字的网络字节序。猜测是某种加密变换。bingruoice,你能否给出这本说明书上面,关于这段描述的上下文?PS:刚才仔细看了一下,我回复的帖子里面有个错 ...

论坛徽章:
0
2 [报告]
发表于 2008-05-27 10:50 |只看该作者
不好意思,前几天到外地去了,没及时回复。

在UltraEdit里面捣鼓了一下,“测试信息”四个字
的UNICODE编码的确是,
0x4B 0x6D 0xD5 0x8B 0xE1 0x4F 0x6F 0x60

“0x60 0x6D 0x55 0x9C 0x53 0xD1 0x8D 0x22”
这段报文是怎样编的码,我就不知道了。但可以肯定的
是,不会是“测试信息”四字的网络字节序。猜测是某种
加密变换。

bingruoice,你能否给出这本说明书上面,关于这段描
述的上下文?


PS:刚才仔细看了一下,我回复的帖子里面有个
错误,网络字节序的"abc"字符串存储的顺
序正确形式是

内存地址       编码      内容
  00000000    0x63      c
  00000001    0x62      b
  00000002    0x61      a

而littel endian 的则是

内存地址       编码      内容
  00000000    0x61      a
  00000001    0x62      b
  00000002    0x63      c

论坛徽章:
0
3 [报告]
发表于 2008-05-27 11:20 |只看该作者
Unicode是国际字符集编码,和内存没什么关系。

可能你的问题是指Big-endian和littel-endian。
Big-endian是网络字节序,即低位在前,比如ASCII
的abc三个字符,加载到内存里面,
编码就是0x61 0x62 0x63

但littel-endian则是高位在前,同样abc三个字符,加载
到内存,编码则是0x63 0x62 0x61。

论坛徽章:
0
4 [报告]
发表于 2008-05-28 09:21 |只看该作者

回复 #2 nmap 的帖子

嗯确实是倒转了一下,可是不明白怎么倒转的

论坛徽章:
0
5 [报告]
发表于 2008-05-30 09:10 |只看该作者
在顶一下,我还是不明白啊~~说的具体点,谢谢大家了~~两位两位转的吗?

论坛徽章:
0
6 [报告]
发表于 2008-06-13 10:29 |只看该作者
帮我再看看啊~~5555555

论坛徽章:
0
7 [报告]
发表于 2008-06-14 14:05 |只看该作者
小端:低位在低地址

大端:低位在高地址

UNICODE一个字占两字节,当然是两位两位的转,比如:“震”的UNICODE是0x9707,你就要转成0x0797。

下面的宏可以帮你转。

#define HTONS(n) (((((unsigned short)(n) & 0xFF)) << | (((unsigned short)(n) & 0xFF00) >> )
#define NTOHS(n) (((((unsigned short)(n) & 0xFF)) << | (((unsigned short)(n) & 0xFF00) >> )

#define HTONL(n) (((((unsigned long)(n) & 0xFF)) << 24) | \
                  ((((unsigned long)(n) & 0xFF00)) << | \
                  ((((unsigned long)(n) & 0xFF0000)) >> | \
                  ((((unsigned long)(n) & 0xFF000000)) >> 24))

#define NTOHL(n) (((((unsigned long)(n) & 0xFF)) << 24) | \
                  ((((unsigned long)(n) & 0xFF00)) << | \
                  ((((unsigned long)(n) & 0xFF0000)) >> | \
                  ((((unsigned long)(n) & 0xFF000000)) >> 24))
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP