将位数据转换为字符串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?