3

org.apache.commons.codec.binary.Hexを使用して文字列値をエンコードおよびデコードしようとしています:

例えば:

Hex.encodeHex("10".getBytes()).toString();

ただし、これは 16 進数の出力ではなく、次のような出力になります。

[C@596d444a]

なぜこれが起こっているのですか?

4

2 に答える 2

7

はい - への呼び出しは char 配列 ( )をencodeHex()返し、それを呼び出しているだけです。代わりに String(char[]) コンストラクターを使用します。char[]toString

new String(Hex.encodeHex("10".getBytes()))

(ちなみに、プラットフォームの既定のエンコーディングを使用するパラメーターなしの方法を使用しないことを強くお勧めします。これは、微妙なエラーの絶え間ない原因です。)String.getBytes()

于 2011-03-01T10:37:57.343 に答える
0

あなたが与えたリンクに従って:public static char[] encodeHex(byte[] data)return @return A char[] containing hexadecimal characters。したがって、出力は正しいです。char 配列を使用して文字列を作成します。

于 2011-03-01T10:39:18.150 に答える