字符串到字节的转换-如果已经是字节并将其作为字符串



我有一个tibco活动,它以字节为单位给出这个输出。

现在我必须在我的java代码中使用它并将其发送到大型机队列。

我把它作为一个String bwmsg="wcLDxMXGx8="和在我的主要方法…

byte[] bArray = bwmsg.getBytes();
BytesMessage bytmsg = session.createBytesMessage(); 
bytmsg.writeBytes(bArray);
mqSender.sendToMQ(bytmsg,connection,sender,session);

OUTPUT: 77634c44784d584778383d

我做错了吗?这已经是一个字节,我读取它作为一个字符串,然后再次得到字节,并做解决方案。这有错吗?

如果是,请告诉我如何将bwmsg字段作为字节并将其传递给方法。

我用谷歌搜索了很多链接,但没有得到很好的帮助。

这与Base64无关。这是简单的编程101。

您从字符串开始,然后将其转换为字节数组,最后打印出字节数组。

你期望看到什么?您应该期望看到一个字节数组。
即。"wcLDxMXGx8=" is "77634c44784d584778383d"

让我解释一下:

"w" = 0x'77'
"c" = 0x'63'
"L" = 0x'4c'
"D" = 0x'44'
"x" = 0x'78'
"M" = 0x'4d'
"X" = 0x'58'
"G" = 0x'47'
"x" = 0x'78'
"8" = 0x'38'
"=" = 0x'3d'

如果你希望它是人类可读的格式,那么将字节数组转换回字符串,然后将其打印出来。

。新的字符串(bytmsg)

正如Jon Skeet在上面的评论中提到的。我只是把他的话变成了代码。

使用

javax.xml.bind。DatatypeConverter

static String bwmsg="wcLDxMXGx8=" static byte[] array = DatatypeConverter.parseBase64Binary(bwmsg);

在main方法中,将上述字段设置为静态,以便您可以直接在main方法中调用它们。public static void main(String [] args){ //other code here . . BytesMessage bytmsg = session.createBytesMessage(); bytmsg.writeBytes(array); mqSender.sendToMQ(bytmsg,connection,sender,session);

这就解决了我的问题,希望对别人也有帮助。

相关内容

  • 没有找到相关文章

最新更新