Cadena unicode -> array de bytes (1 caracter = 2 bytes)

9 views
Skip to first unread message

Jesus Angel

unread,
Jan 8, 2010, 2:35:35 PM1/8/10
to javamaniaco
Hola

En le fichero binario de mi mensaje anterior, los caracteres se
codifican en unicode. Cada caracter ocupa 2bytes y estos se escriben
en el fichero en formato little-endian.

Por ejemplo, la cadena Extreme se codificaría en el fichero así:

45 00 78 00 74 00 72 00 65 00 6D 00 65 00 <- hexadecimal

E = 0x45 0x00
x = 0x78 0x00
etc.

En mi programa, quiero reemplazar una cadena de 17 caracteres (34
bytes) del fichero binario por otra que me pasan por la línea de
comandos (args[1]).

Mi primer problema es como obtener, a partir de la cadena, el array de
bytes que tengo que escribir en el fichero.

¿Se os ocurre alguna forma de hacerlo?

Jesus Angel

unread,
Jan 12, 2010, 5:28:04 PM1/12/10
to javamaniaco
Por si acaso le sirve a alguien, la solución era usar el charset
UTF-16LE para obtener el array de bytes del string:

byte[] aux = newCourseName.getBytes("UTF-16LE");

Salu2

Reply all
Reply to author
Forward
0 new messages