【发布时间】:2017-10-20 13:12:57
【问题描述】:
我知道在 python binascii.unhexlify(initValue)
返回十六进制字符串表示的二进制数据。
我正在尝试将 binascii.unhexlify(initValue) 转换为 java。
我在 java 中尝试了以下代码行,但得到的结果与 python 中的代码不同:
DatatypeConverter.parseHexBinary(value);
我运行以下示例:
我的输入 - 十六进制字符串:
value = '270000f31d32d1051400000000000000000000000006000000000000000000000000000000000000'
在python中运行时:
result = binascii.unhexlify(value)
我得到:
result = "'\x00\x00\xf3\x1d2\xd1\x05\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
在java中运行时:
byte[] bytes = DatatypeConverter.parseHexBinary(value);
我得到:
bytes = [39, 0, 0, -13, 29, 50, -47, 5, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1.为什么我得到不同的结果?
- 为什么我在 python 中得到带有'\'标记的输出?
【问题讨论】:
-
你能做到吗? @chx3 下面给出的答案是给出响应,但字节看起来与 Java 中的生成不同。你有没有找到其他方法来获得类似的输出?