gpt4 book ai didi

c# - byte[] 到字符串到字节数组的转换在 java 中不能正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:58 24 4
gpt4 key购买 nike

我有一个像这样初始化的字节数组:

public static byte[] tmpIV =  {0x43, (byte)0x6d, 0x22, (byte)0x9a, 0x22,
(byte)0xf8, (byte)0xcf, (byte)0xfe, 0x15, 0x21,
(byte)0x0b, 0x38, 0x01, (byte)0xa7, (byte)0xfc, 0x0e};

如果我打印它,它会给我

67   109    34      -102       34     -8          -49      -2      21      33
11 56 1 -89 -4 14

然后我将整个字节数组转换成字符串并发送给我的 friend 。

String str = new String(tmpIV);

我的 friend 是一名C#程序员

所以我的 friend 得到了一些其他数据。我的 friend 如何获得与我发送的相同的数据。同样在 Java 中,如果我将上面的字符串重新转换为字节数组,我将无法得到我发送的那个字符串:

 67     109        34        -17        -65      -67      34       -17     -65       -67
-17 -65 -67 -17 -65 -67 21 33 11 56 1
-17 -65 -67 -17 -65 -67

最佳答案

问题是您已将字节数组转换为平台默认编码的字符串。

如果这是任意二进制数据(它看起来是),那么您不应该使用任何普通字符编码将其转换为字符串 - 请改用 base64。

从 Java 使用 base64 不是特别容易(因为它不在标准库 AFAIK 中)但是您可以使用各种第 3 方库,例如 the one in the Apache Commons Codec library .

在 C# 方面会容易得多 - 只需使用:

byte[] data = Convert.FromBase64String(text);

关于c# - byte[] 到字符串到字节数组的转换在 java 中不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/891636/

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