如何讓byte陣列轉換為String字串時候去除亂碼的問號
阿新 • • 發佈:2018-11-26
1. 加入這家公司一直跟通訊層打交道 天天使用byte陣列傳遞資料 好懷念 使用http協議 傳資料 至少人家 okttp 或者retrofit幫你封裝好了 現在 天天是十進位制轉換為16進位制,byte 陣列轉換成short,int ,String 上面一篇是各種 轉換的方法
今天碰到的問題是 一串byte陣列 我可能是隻需要前十個位元組 但是 傳過來定義時候可能定義32位長度 但是我只需要十位
使用 new String (byte[32],"UTF-8") 產生的String 字串 在setText時候並沒有什麼問題 但是需要這個字串去匹配時候 只能說抱歉了 人家真正列印是這種形式
XX講�
後面的00 會變成這種類似亂碼的問號 但是展示時候沒什麼問題
不多說了上程式碼吧 檢測到00 不用就行了
public static String ByteToString(byte[] bytes) { StringBuilder strBuilder = new StringBuilder(); for (int i = 0; i <bytes.length ; i++) { if (bytes[i]!=0){ strBuilder.append((char這樣子不會產生 類似亂碼的問題 親測沒問題)bytes[i]); }else { break; } } return strBuilder.toString(); }