Java: можно ли преобразовать строки в байтовые массивы, без спецификации? - PullRequest
4 голосов
/ 28 марта 2010

Предположим, у меня есть этот код:

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.]

Как видите, в начале есть спецификация.

Как я могу:

  1. генерировать массив байтов UTF-16, в котором отсутствует спецификация, из строки?
  2. преобразовать из байтового массива, содержащего символы UTF-16, но без спецификации, обратно в строку?

1 Ответ

5 голосов
/ 28 марта 2010

Вы можете явно выбрать порядок байтов, используя «UTF-16BE» или «UTF-16LE» в качестве кодировки. См. javadocs для Charset .

...