在C语言中通过memcpy很容易拷贝任一数据字节的数据(在数据允许的情况下),但是在JAVA可以用用什么方式替代呢?
在JAVA一般用二字节表示一个字母。
在做通讯交易的情况下,总会传很多报文,而报文总会时不时的包含一些结束符如'0x00',但是用常规的方式截取如 new String(buf, pos + 2, length); 来获得字符串,往往会出错(因为其遇到一些特殊的字符如结束符,会在计算字符串的操作出错)。但是用 new String(buf, pos + 2, length,"ASCII"),可以解决。
这里涉及到字符的字集问题(即最小单位)。
这里有一个测试的例子。关于8583报文的交易报文。
请求为:(前面增加了二个字节的长度)
----------------------------------------------------------------
01 05 60 00 03 00 00 61 31 00 31 10 02 01 00 70 24 06
C0 20 C0 9A 11 16 62 25 00 00 00 00 00 22 03 00
00 00 00 00 01 10 00 00 00 24 30 10 05 10 00 02
06 12 29 62 25 00 00 00 00 00 22 D3 01 02 01 00
00 0F 30 30 30 30 30 31 34 30 38 30 31 31 31 30
30 37 35 34 32 30 30 30 31 31 35 36 4A AA A5 BA
E2 BA EF F7 26 00 00 00 00 00 00 00 01 34 9F 26
08 2D C8 83 F9 35 57 DE