如何使用java将包含二进制数据模式的字符串转换为字节?

时间:2011-11-20 18:02:30

标签: string utf-8 binary

我必须使用期望PDF文件(base64binary data)作为字符串的Web服务。由于通信是以XML UTF-8编码完成的,因此字符串中有许多无效元素,它会抛出错误。我试着保持字符串CDATA,但仍然无法正常工作。知道如何克服这种情况吗?

我试着通过格式化将二进制数据写入字符串,即0x530x770x610x720x6F0x6F0x70现在如何将其恢复为字节?我能把这个模式读成字节吗?

我没有使用Websphere流程服务器和Websphere Integration Developer。我们从webservice下载了chunck,现在需要将base64binary作为字符串发送到我们遇到的其他服务。请帮助督促

1 个答案:

答案 0 :(得分:1)

看起来你误解了你应该做的事情 - 你不能将二进制数据写入文本流(因为,正如你已经想到的那样,并非每个二进制序列都包含有效字符)。这就是your spec base64binary ,而不是原始二进制的原因。我来引用一下:

  

定义:

     

base64Binary表示Base64编码的任意二进制   数据。 base64Binary的值空间是有限长度的集合   二进制八位字节的序列。对于base64Binary数据的整个二进制   使用[RFC 2045]中的Base64 Alphabet编码流。

     

base64Binary值的词汇形式仅限于65   [RFC 2045]中定义的Base64字母的字符,即a-z,   A-Z,0-9,加号(+),正斜杠(/)和等号   (=),以及[XML 1.0(第二版)中定义的字符   版))作为白色空间。不允许使用其他字符。

您没有告诉我们您正在使用哪种系统,因此我无法准确地告诉您如何对数据进行编码,但您会发现几乎所有语言的预先存在的base64实现。