0

「0x0601930600058000050001」という文字列値があり、バイト配列に変換する必要があります

byte[] codes1 = new byte[]{(byte)0x06,(byte)0x01,(byte)0x93,(byte)0x06,(byte)0x00,(byte)0x05,(byte)0x80,(byte)0x00,(byte)0x05,(byte)0x00,(byte)0x01};

    for(byte b : codes1){
        System.out.println(b);
    }
System.out.println("======================");

byte[] cod = "0x0601930600058000050001".getBytes();
for(byte b : cod){
        System.out.println(b);
    }

両方の結果は異なります。どうすれば同じにできますか。最初のループ出力は私が期待している実際のものであり、2番目のループは間違った出力です。

ご覧のとおり、2 バイトごとに分割して型をキャストし、0x を使用して実際の値を取得しています。

質問: 最初のループと同じタスクを実行するのに役立つ定義済みの方法 (Apache commons コーデック) はありますか? その文字列値を実行時に動的に取得します。

提案してください。

ありがとう!

4

2 に答える 2

0

私は行きます:

byte[] result = myString.getBytes();

また

byte[] result = myString.getBytes(Charset.forName("UTF-8"));
于 2015-03-03T11:53:17.593 に答える