java: 我可以将字符串转换为字节数组,而不需要 BOM 吗?

发布于 2024-08-26 10:17:36 字数 558 浏览 9 评论 0原文

假设我有这样的代码:

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 的字节数组转换回字符串?

Suppose I have this code:

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

If I display the byte array in message, the result is:

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

As you can see, there's a BOM in the beginning.

How can I:

  1. generate a UTF-16 byte array that lacks a BOM, from a string?
  2. convert from a byte array that contains UTF-16 chars but lacks a BOM, back to a string?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寒尘 2024-09-02 10:17:36

您可以使用“UTF-16BE”或“UTF-16LE”作为编码来显式选择字节顺序。请参阅有关字符集的 javadocs

You can explicitly choose a byte order by using "UTF-16BE" or "UTF-16LE" as the encoding. See the javadocs for Charset.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文