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?

  • No se puede arrastrar DrawerLayout desde ListView
  • Error: Causa: no se pudo encontrar el destino con la cadena de hash 'Google Inc.: API de Google: 23' en: E: \ AndroidStudio \ SDK
  • Cambiar la fuente del título de la aplicación en android
  • Android - Parse JS generó urls con JSOUP
  • Actualizaciones de miembros extranjeros de ORMLite
  • Cómo utilizar una base de datos existente con una aplicación de Android
  • Dependencia del proyecto gradle en la idea
  • ¿Cuál es exactamente su valor de retorno de openAccessory?
  • Reconocimiento Óptico de Caracteres Android con OpenCV
  • Incluir archivo .json local en el proyecto Eclipse Android
  • JSONObject.toString: cómo no escapar de barras
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.