Decodificación de cadena utf-8

¿Cómo puedo decodificar una cadena utf-8 en android? He intentado con este comandos pero la salida él mismo de la entrada:

URLDecoder.decode("hello&//à", "UTF-8"); new String("hello&//à", "UTF-8"); EntityUtils.toString("hello&//à", "utf-8"); 

Una cadena no necesita codificación. Es simplemente una secuencia de caracteres Unicode.

Es necesario codificar cuando se desea convertir una cadena en una secuencia de bytes. El conjunto de caracteres que elija (UTF-8, cp1255, etc.) determina la asignación de caracteres-> bytes. Tenga en cuenta que un carácter no necesariamente se traduce en un solo byte. En la mayoría de los conjuntos de caracteres, la mayoría de los caracteres Unicode se traducen a al menos dos bytes.

La codificación de una cadena se realiza mediante:

 String s1 = "some text"; byte[] bytes = s1.getBytes("UTF-8"); // Charset to encode into 

Necesita decodificar cuando tiene una secuencia de bytes y desea convertirlos en una cadena. Cuando usted hace que usted necesita especificar, otra vez, el charset con el cual las bytes fueron codificadas originalmente (si no usted terminará para arriba con el txt del garbled).

Descodificación:

 String s2 = new String(bytes, "UTF-8"); // Charset with which bytes were encoded 

Si usted quiere entender esto mejor, un gran texto es " el mínimo absoluto cada desarrollador de software absolutamente, positivamente debe saber sobre Unicode y conjuntos de caracteres (sin excusas!) "

Las funciones principales son getBytes(String charset) y new String(byte[] data) . Puede utilizar estas funciones para realizar la decodificación UTF-8.

UTF-8 decodificación en realidad es una cadena de conversión de cadena, el búfer intermedio es una matriz de bytes. Ya que el objetivo es una cadena UTF-8, por lo que el único parámetro para new String() es la matriz de bytes, que llama es igual a new String(bytes, "UTF-8")

A continuación, la clave es el parámetro para la cadena de entrada codificada para obtener matriz de bytes internos, que debe saber de antemano. Si no lo hace, adivine el más posible, "ISO-8859-1" es una buena suposición para el usuario Inglés.

La sentencia de decodificación debe ser

 String decoded = new String(encoded.getBytes("ISO-8859-1")); 

Intente buscar decodificar cadena codificada en formato utf-8 en android, pero no parece que su cadena está codificada con algo particular. ¿Qué crees que debería ser el resultado?

  • El tamaño de imagen de Android cambia después de la devolución de llamada de la cámara
  • ¿Cuánto Java debería haber aprendido antes de probar la programación de Android?
  • Solicitud de aplicaciones para Android Servicio WCF (SerializationException - utf-8 related)
  • Android Studio crear una variante de construcción / tipo excluyendo jniLibs?
  • Pros y contras de usar un Thread o TimerTask para un juego Android
  • Proceso de inscripción de certificado
  • Error en algunos dispositivos - no se pudo encontrar la clase 'com.google.android.gms.measurement.internal.zzz'
  • Android: error al cargar la biblioteca
  • Html Audio en la vista web de Android
  • Scroll up no funciona con SwipeRefreshLayout en Listview
  • Método del ciclo de vida del bloqueo de actividad - android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.