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

String 如何使用java将包含二进制数据模式的字符串转换为字节?,string,utf-8,binary,String,Utf 8,Binary,我必须使用一个web服务,它需要一个PDF文件(base64二进制数据)作为字符串。由于通信是以XML UTF-8编码完成的,因此字符串中有许多无效元素,因此引发了一个错误。我试着保留字符串CDATA,但仍然不起作用。你知道如何克服这种情况吗 我试图通过格式化将二进制数据写入字符串,即0x530x770x610x720x6F0x6F0x70,现在如何将其返回到字节?我能把这个模式读入字节吗 我正在运行WebSphereProcessServer和WebSphereIntegrationDevel

我必须使用一个web服务,它需要一个PDF文件(base64二进制数据)作为字符串。由于通信是以XML UTF-8编码完成的,因此字符串中有许多无效元素,因此引发了一个错误。我试着保留字符串CDATA,但仍然不起作用。你知道如何克服这种情况吗

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


我正在运行WebSphereProcessServer和WebSphereIntegrationDeveloper。我们从一个Web服务下载了chunck,现在需要将base64binary作为字符串发送到另一个服务,我们被击中了。请帮助urget

看起来您误解了您应该做的事情-您不能将二进制数据写入文本流(因为,正如您已经了解的,并非每个二进制序列都包含有效字符)。这就是为什么说base64binary,而不是原始二进制。让我引述:

定义:

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

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

您没有告诉我们您使用的是什么系统,因此我无法准确地告诉您如何对数据进行编码,但您会发现基本上每种语言都有base64的现有实现