簡體   English   中英

將字節轉換為Java字符串(可能是漢字)

[英]Converting bytes to java string (possibly kanji)

我正在嘗試使用以下代碼將字節數組轉換為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的替代方法?

謝謝!

嘗試

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM