【问题标题】:java: can I convert strings to byte arrays, without a BOM?java:我可以在没有 BOM 的情况下将字符串转换为字节数组吗?
【发布时间】:2010-03-28 03:40:32
【问题描述】:

假设我有这个代码:

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

【问题讨论】:

    标签: java string unicode byte-order-mark


    【解决方案1】:

    您可以使用“UTF-16BE”或“UTF-16LE”作为编码明确选择字节顺序。请参阅javadocs for Charset

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      相关资源
      最近更新 更多