gpt4 book ai didi

java - 属性文件中的十六进制值 : JAVA

转载 作者:行者123 更新时间:2023-12-01 15:41:15 26 4
gpt4 key购买 nike

在我的 Java 程序中,我需要来自十六进制字符串的字节数组。所以我做了以下事情:
byte[] key=HexUtils.convert("0AA387ED291F6D90");

这会将十六进制字符串转换为字节数组,如下所示:
输出:字节数组:key:[10, -93, -121, -19, 41, 31, 109, -112]

现在,我想将十六进制字符串移动到属性文件中。但我做不到。

尝试 1:
属性文件====> key=0AA387ED291F6D90
Java程序====> byte[] key = HexUtils.convert(prop.getProperty("key"));

这会产生错误:BAD HEXADECIMAL DIGIT

尝试 2:
属性文件====> key=\u000A\u00A3\u0087\u00ED\u0029\u001F\u006D\u0090
Java程序====> byte[] key = HexUtils.convert(prop.getProperty("key"));

输出:键:[10, -93, 63, -19, 41, 31, 109, 63]

如果您注意到,有 2 个字节与预期不同。十六进制 87 和十六进制 90。两者都转换为 63。而我期望分别为 -121 和 -112。

有人可以帮助我如何进行此转换吗?我希望我说清楚了!

安加德

最佳答案

如果使用 \uxxxx 代码,则您使用的是 UNICODE 转义序列。 \u0090 最终不会被解释为字符串 "90",它最终会被解释为与 UTF-16 编码中的代码单元 0090 相对应的单个字符。

您的第一种方法应该有效。我建议您尝试 System.out.println(prop.getProperty("key")); 或其他某种形式的输出,并检查是否存在前导或尾随空格、某些您不期望的字符或null。后者意味着找不到“key”的属性。

关于java - 属性文件中的十六进制值 : JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8007774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com