0
我試圖使用以下代碼來轉換一個字節數組到Java字符串:轉換字節Java字符串(可能漢字)
//strInput is a binary string
byte[] bval = new BigInteger(strInput, 2).toByteArray();
strOutput = new String(bval, "UTF-8");
我沒有遇到問題,當目標輸出包含字母數字或符號(例如%& * $)。但是,當它包含純日文字符時,我在輸出的開頭不斷收到一個額外的NULL字符。
我的第一個猜測可能是它與有符號/無符號字節有關。但是當我試圖獲得輸入的二進制補碼時,我得到了垃圾字符作爲輸出。
你們是否還有其他的想法,看看額外的NULL字符來自哪裏?
------- UPDATE ------ 我在這裏閱讀的某處在trimover()也刪除NUL字符,除了空白,所以我試過。迄今爲止,在日文字符的輸入方面效果很好。
這是安全使用? 或者我真的應該找到使用BigInteger的替代方案嗎?
謝謝!
請給我們一個樣本二進制字符串。我強烈懷疑在這裏使用'BigInteger'來解析數據是一個壞主意。 –
字節數組的本質是什麼?它從何而來?如果它是未知的字節數組,它將是一個命中和未命中(更經常地錯過)將它正確地轉換爲一個字符串。 – anonymous
@Jon Skeet - 示例二進制字符串應該是111001101001110010101100. – pliskin