gpt4 book ai didi

java - 将十六进制字节转换为实际字节

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:07 25 4
gpt4 key购买 nike

<分区>

我有一个像这样用字节写的文件

\r\x00\x00\x00\xd0{"a": "test"}

它有以下字节

[13, 0, 0, 0, -48, 123, 34, 97, 34, 58, 32, 34, 116, 101, 115, 116, 34, 125]

当这个文件被读入 Java 时,我得到了所有的转义

\\r\\x00\\x00\\x00\\xd0{"a": "test"}

当我对这个字符串执行 .getBytes() 时,我得到了

[92, 114, 92, 120, 48, 48, 92, 120, 48, 48, 92, 120, 48, 48, 92, 120, 100, 48, 123, 34, 97, 34, 58, 32, 34, 116, 101, 115, 116, 34, 125]

我必须将字符串转换为有效字节,不幸的是我无法更改文件的读取方式。我知道在 Python 中,您可以使用 'rb' 模式打开文件,一切顺利。如果java有那个能力,我就用不上了。

那么简而言之,如何将 Java 读取的字符串转换为写入文件的原始字节数组?

很抱歉,如果这个问题很简单,但我对 Java 还是很陌生。

编辑:所以我相信我的问题不同于提议的“重复问题”链接。它不是获取 java 字符串中的每个文字值并将其转换回字节。 java中的字符串已经被读者转义了。 \x00 现在是 \\x00 这不是同一个字节值。所以我想我需要一些方法来取消转义字符串?

在十六进制编辑器中查看的文件

0000000: 5c72 5c78 3030 5c78 3030 5c78 3030 5c78  \r\x00\x00\x00\x
0000010: 6430 7b22 6122 3a20 2274 6573 7422 7d0a d0{"a": "test"}.

java在十六进制编辑器中查看的字符串

0000000: 5c5c 725c 5c78 3030 5c5c 7830 305c 5c78  \\r\\x00\\x00\\x
0000010: 3030 5c5c 7864 307b 2261 223a 2022 7465 00\\xd0{"a": "te
0000020: 7374 227d 0a st"}.

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