2010-03-28 19 views
4

Supposons que j'ai ce code:java: puis-je convertir des chaînes en tableaux d'octets sans nomenclature?

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

Si j'afficher le tableau d'octets dans le message, le résultat est:

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

Comme vous pouvez le voir, il y a une nomenclature au début.

Comment puis-je:

  1. générer un tableau d'octets UTF-16 qui ne dispose pas d'une nomenclature, d'une chaîne?
  2. convertir à partir d'un tableau d'octets qui contient des caractères UTF-16 mais n'a pas de nomenclature, retour à une chaîne?

Répondre

5

Vous pouvez choisir explicitement un ordre d'octets en utilisant "UTF-16BE" ou "UTF-16LE" comme codage. Voir le javadocs for Charset.

+0

Parfait, merci. – Cheeso