0

以下のように(サーバーから)バイト配列値を取得しています

バイト[] バイト=9D 37 7B 10 CE 77 8C 49 38 B3 C7 E2 C6 3A 22 9A ;

そのまま文字列に変換する必要があります

私は次のコードを試しました

文字列項目=新しい文字列(バイト)

しかし、私は値を取得しています[B@40e5d338

また、エンコード技術を使用してみました

String item=new String(byte,"UTF-8")

�E�V�r�u�i��

どんな助けでも大歓迎です。事前に感謝します

4

1 に答える 1

2

byte[] をパラメーターとして受け取る String コンストラクターは、エンコーディングに基づいてバイトを文字に変換することにより、文字列を作成します。を含む文字列が必要な場合

9D 37 7B 10 CE 77 8C 49 38 B3 C7 E2 C6 3A 22 9A

それを行うメソッドを作成する必要があります (私の知る限り、Java ライブラリにはありません)。だから基本的に:

public String toHexString(byte[] arr) {
    if (arr == null || arr.length == 0) {
        return "";
    }
    StringBuilder sb = new StringBuilder();
    sb.append(Integer.toHexString(arr[0] & 0xff));
    for (int i = 1; i < arr.length; i++) {
        sb.append(' ').append(Integer.toHexString(arr[i] & 0xff));
    }
    return sb.toString();
}
于 2013-09-11T11:27:09.963 に答える