1. 程式人生 > >如何讓byte陣列轉換為String字串時候去除亂碼的問號

如何讓byte陣列轉換為String字串時候去除亂碼的問號

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(); }
這樣子不會產生  類似亂碼的問題 親測沒問題