java: posso convertire stringhe in array di byte, senza un BOM?
-
22-09-2019 - |
Domanda
Supponiamo che io ho questo codice:
String encoding = "UTF-16";
String text = "[Hello StackOverflow]";
byte[] message= text.getBytes(encoding);
Se visualizzo l'array di byte nel messaggio, il risultato è il seguente:
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.]
Come si può vedere, c'è un BOM all'inizio.
Come posso:
- generare un array di byte UTF-16 che manca di una distinta base, da una stringa?
- convertire da un array di byte che contiene caratteri UTF-16 ma manca una distinta base, in una stringa?
Soluzione
È possibile scegliere in modo esplicito un ordine di byte utilizzando "UTF-16 BE" o "UTF-16", come la codifica. Vedere la javadocs per Charset .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow