4

次のコードがあるとします。

String encoding = "UTF-16";
String text = "[Hello StackOverflow]";
byte[] message= text.getBytes(encoding);

メッセージにバイト配列を表示すると、結果は次のようになります。

0000    FE FF 00 5B 00 48 00 65 00 6C 00 6C 00 6F 00 20     ...[.H.e.l.l.o.
0010    00 53 00 74 00 61 00 63 00 6B 00 4F 00 76 00 65     .S.t.a.c.k.O.v.e
0020    00 72 00 66 00 6C 00 6F 00 77 00 5D                 .r.f.l.o.w.]

ご覧のとおり、最初に BOM があります。

どうやって:

  1. 文字列から BOM のない UTF-16 バイト配列を生成しますか?
  2. UTF-16 文字を含むが BOM がないバイト配列から文字列に変換しますか?
4

1 に答える 1

5

エンコーディングとして「UTF-16BE」または「UTF-16LE」を使用して、バイト順を明示的に選択できます。Charsetの javadoc を参照してください。

于 2010-03-28T03:43:12.547 に答える