将长字符串转换为乱码字符串

9bfwbjaz  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(410)

我现在想在hbase(online db)中查询一条记录,以验证我编写的一个函数。但是在我的公司,我没有访问online db的权限。因此,我必须将行键(字符串类型)交给运维工程师,让他为我查询。
我已经阅读了应用程序代码,它生成的行键的类型是byte[],所以我把它转换成一个字符串。

byte[] result = consumeRecordRowKey.toBytes();
String resultString = new String(result);

但似乎是这样,它是乱七八糟的:

它使用defaule编码类型生成byte[],所以我也使用默认编码。运维工程师说他不能用这个字符串进行查询。那么,我能做些什么来解决这个问题呢?
更新:consumerRecordRowKey.tobytes()执行以下操作:它合并两字节数组,两字节数组是:

byte[] array1 = Bytes.toBytes("2088301654230372");
byte[] array2 = Bytes.toBytes(9223370625843459807);//convert a long value

什么是garbles是由long value转换的字节。我想知道,如何将long value转换成byte[]并从中得到普通字符串?

nqwrtyyt

nqwrtyyt1#

您和byte[]的创建者可能有不同的默认语言环境。你要么让他告诉你他的默认语言环境

System.out.println(Charset.defaultCharset());

或者通过更新代码来同步您的区域设置

string.toByteArray(STANDARD_CHARSET_OF_YOUR_CHOOSING);

在他那一边

new String(bytes, STANDARD_CHARSET_OF_YOUR_CHOOSING);

你的。

相关问题