将位数据转换为字符串Java

将位数据转换为字符串Java,java,db2,Java,Db2,我有一个变量OBJECT\u ID作为OBJECT\u ID VARCHAR()存储在DB2中,用于位数据notnull 如何检索存储在其中的字符串值 我尝试了以下代码将Java中的二进制转换为字符串: String str = resultset.getObject("OBJECT_ID").toString(); int charCode = Integer.parseInt(str,2); String str1 = new Character((char)charCode).toStri

我有一个变量
OBJECT\u ID
作为
OBJECT\u ID VARCHAR()存储在DB2中,用于位数据notnull

如何检索存储在其中的
字符串

我尝试了以下代码将Java中的
二进制
转换为
字符串

String str = resultset.getObject("OBJECT_ID").toString();
int charCode = Integer.parseInt(str,2);
String str1 = new Character((char)charCode).toString();
但它提出了以下几点:
NumberFormatException:用于输入字符串:[B@475e586c“

确保字符串不是整数,但如何在java程序中从DB2中检索位数据
字符串
VARCHAR()

由于
toString
的“[B”表示类型
字节[]
,应可以执行以下操作:

byte[] b = (byte[]) resultset.getObject("OBJECT_ID");
还有一个问题是
String
用于(Unicode)文本,而不是二进制数据。
char
是用UTF-16编码的两个字节

您可以尝试将字符串滥用为:

String s = new String(b, StandardCharsets.ISO_8859_1); // Bad idea.
这取决于对象ID

通常,二进制数据可以编码为Base64文本,使用64个ASCII字符作为“数字”

由于
toString
中的“[B”表示类型
字节[]
,因此应该可以执行以下操作:

byte[] b = (byte[]) resultset.getObject("OBJECT_ID");
还有一个问题是
String
用于(Unicode)文本,而不是二进制数据。
char
是用UTF-16编码的两个字节

您可以尝试将字符串滥用为:

String s = new String(b, StandardCharsets.ISO_8859_1); // Bad idea.
这取决于对象ID

通常,二进制数据可以编码为Base64文本,使用64个ASCII字符作为“数字”


请不要使用太多的大写和粗体。看起来这需要。请尝试此
String str=resultset.getString(“OBJECT_ID”);
@YCF_L现在它返回一个字符串“0464145D43B3FD4C932BF480 DF3B4A32”同样的例外,你说的
确保字符串不是整数
那么问题是,为什么要将它解析为int?请不要使用太多的大写和粗体。看起来这是需要的。试试这个
字符串str=resultset.getString(“OBJECT_ID”);
@YCF_L现在它返回一个字符串“0464145d43b3b3fd4c932b480df3b4a32”同样的例外,你说
确保字符串不是整数
那么问题是,为什么要将它解析为int?