当前位置: 首页 > 知识库问答 >
问题:

如何将字节串转换为字节[]

阳建弼
2023-03-14

我遇到了将字节字符串转换为字节数组的强制转换问题。

我有一个字符串[B@1a758cb。也就是Base64加密的String的主String"Gunjan"。这里的解密我想把加密的字节串转换成字节[]。

但是String.get字节[]不适合我。String.getBytes[]给出字节String的字节数。

我该怎么做??我是否必须迭代字节字符串中的每个字符并将其转换为字节[]??

编辑

我使用Apache Coded 3.1 jar进行Base64转换。这是我得到这个加密文本的代码...

String in = "gunjan";
byte[] byteStr = in.getBytes();
byte[] base64Encoded = Base64.encodeBase64(byteStr);

共有1个答案

乐正浩宕
2023-03-14

首先,你在这里没有任何问题,因为解码后的字符串值(Gunjan)等于原始值(Gunjan)。

您对中间字节数组打印的内容感到困惑。如注释中所述,字符串[@Bxxxx是对字节数组调用toString()的结果。此设计不显示字节的值,而是显示数组的类型([@B),后跟数组对象的哈希代码。如果要显示字节值,请使用

System.out.println(Arrays.toString(byteArray));

不过,您有一个潜在的bug:您正在使用默认编码将字符串转换为字节,反之亦然。此编码可能无法支持字符串中的每个字符。您应该使用支持地球上每个字符的特定编码,如UTF8:

byte[] byteStr = string.getBytes("UTF8");
...
String str = new String (byteStr, "UTF8");
 类似资料:
  • 如何将字符串(字节字符串)转换为字节(字节字符串),而不必手动复制和粘贴字符串并在其前面放置b?

  • 问题内容: 如何在python中将字节字符串转换为int? 这样说: 我想出了一个聪明/愚蠢的方法: 我知道必须有内置的东西或在标准库中可以更简单地执行此操作… 这与转换可以使用int(xxx,16)的十六进制数字字符串不同,但是我想转换一个实际字节值的字符串。 更新: 我有点喜欢James的回答,因为它不需要导入另一个模块,但是Greg的方法更快: 我的骇客方法: 进一步更新: 有人在评论中问导

  • 有没有办法将Java转换为(而不是装箱的)? 在尝试此过程中: 我得到了不同的输出。无法显示第一个输出,因为它是gzip字符串。 第二个是地址。我做错什么了吗?我需要一个中的结果来将其馈送到gzip解压缩器,如下所示。

  • 问题内容: 我想在GO中将字符串数组转换为字节数组,以便可以将其写到磁盘上。将字符串数组()解码为字节数组()的最佳解决方案是什么? 我正在考虑对字符串数组进行两次迭代,第一个迭代以获得字节数组所需的实际大小,然后第二个迭代写入每个元素的长度和实际字符串()。 解决方案必须能够以其他方式进行转换;从一个到一个。 问题答案: 让我们忽略一个事实,那就是走一秒钟。您需要做的第一件事是将序列化格式编组为

  • 我得到一个错误读数:

  • 问题内容: 我正在使用以下代码从外部程序获取标准输出: 方法返回一个字节数组: 但是,我想将输出作为普通的字符串使用。这样我就可以像这样打印它: 我认为这就是方法的用途,但是当我尝试使用它时,我又得到了相同的字节数组: 如何将字节值转换回字符串?我的意思是,使用”batteries”而不是手动进行操作。我希望它与Python 3兼容。 问题答案: 你需要解码bytes对象以产生一个字符串: