将字节转换为java字符串(可能是汉字)

时间:2014-03-27 11:31:02

标签: java string byte

我正在尝试使用以下代码将字节数组转换为java字符串:

//strInput is a binary string
byte[] bval = new BigInteger(strInput, 2).toByteArray();
strOutput = new String(bval, "UTF-8");

当目标输出仅包含字母数字或符号(例如%& * $)时,我没有遇到任何问题。但是,当它包含纯日语字符时,我会在输出的开头继续获得一个额外的NULL字符。

我的第一个猜测可能是它与有符号/无符号字节有关。但是当我试图获得输入的2s补码时,我将垃圾字符作为输出。

你们是否有关于额外的NULL字符来自何处的其他想法?

-------更新------ 我在stackoverflow中读到了某处,trim()还删除了除空白之外的NUL字符,所以我尝试了。到目前为止,它对日语字符的其他输入效果很好。

这样安全吗? 或者我真的应该找到使用BigInteger的替代方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试

byte[] bval= strInput.getBytes("UTF-8");