9

テキスト文字列が特定のエンコーディングでバイト配列にシリアル化されていることを確認/テストする最良の方法は何ですか?

私の場合、XML 構造が可変文字長の UTF-8 エンコーディングを使用してバイト配列にシリアル化されていることを確認したいと考えています。例として、私の現在の醜い手順は、シリアル化する前に 2 バイトを必要とすることが知られている文字を構造体に挿入し、2 バイト文字を ASCII 文字に置き換えて、シリアル化された配列の長さを比較することです。これにより、2 バイト文字を含む配列の長さが +1 である 2 つのシリアル化された配列が生成されます。

さらに、ソリューションがJavaにとってエレガントである場合。バイト配列内のバイト シーケンスを探すエレガントな方法は思いつきません。(UTF-8 で目的の文字表現を表す既知のバイト シーケンスを探すために使用できます。)

4

2 に答える 2

2

おそらく、既知のエンコーディングを使用してバイト配列を逆シリアル化し、(a)例外がスローされないようにし、(b)元の文字列に逆シリアル化することができます。シナリオの説明から、元の文字列をすぐに利用できない可能性があります。それを作成する方法はありますか?

于 2008-08-11T11:46:40.030 に答える
0

それは良い。そうです、XMLドキュメントをバイト配列として作成するモジュールをテストしているので、元の文字列はありません。期待されるエンコーディングで文字列に逆シリアル化することは考えていませんでした。それでうまくいきます。

于 2008-08-11T12:05:03.427 に答える