我正在尝试使用以下代码将字节数组转换为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的替代方法吗?
谢谢!
答案 0 :(得分:0)
尝试
byte[] bval= strInput.getBytes("UTF-8");