se recomienda usar los miembros de la cadena, pero con una codificación explícita:
byte[] bytes = text.getBytes("UTF-8");
String text = new String(bytes, "UTF-8");
Mediante el uso de una codificación explícita (y uno que es compatible con todos Unicode) a evitar los problemas de sólo llamar text.getBytes()
etc:
- Está utilizando explícitamente una codificación específica, para saber qué codificación utilizar más tarde, en lugar de depender de la plataforma predeterminada.
- Sabe que admitirá todos los Unicode (en lugar de, digamos, ISO-Latin-1).
EDITAR: Aunque UTF-8 es la codificación predeterminada en Android, definitivamente sería explícito al respecto. Por ejemplo, esta pregunta solo dice "en Java o Android", por lo que es completamente posible que el código termine siendo utilizado en otras plataformas.
Básicamente dado que la plataforma normal de Java puede tener diferentes codificaciones predeterminadas, creo que es mejor ser absolutamente explícito. He visto mucha gente usando la codificación predeterminada y perdiendo datos para correr ese riesgo.
EDIT: En mi prisa me olvidó mencionar que usted no tiene que utilizar el nombre de la codificación - se puede utilizar una vez Charset
. El uso de Guava me había realmente uso:
byte[] bytes = text.getBytes(Charsets.UTF_8);
String text = new String(bytes, Charsets.UTF_8);
Intente utilizar SHA128 si' Estamos enviando la cadena a un adruino. Es reversible; pero no sé si necesitarías ese código en el arduino. –