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");
- Compartir el libro de contactos de la aplicación java con CardDAV
- SyncAdapter- onPerformSync no tiene acceso a Internet
- Bucle de audio de Android Gapless
- ¿Cómo devuelvo un int de EditText? (Androide)
- Genera un identificador único como ID de notificación de android
- Error en la instrumentación Android: error de aserción
- Los datos permanecen en el almacén de datos local después de desenfilar
- Renombrar nombre del paquete jar
- Cómo puede emitir un HashMap anidado en un ArrayList
- Cómo comprobar el doble valor está vacío o no
- GreenBroot EventBus no pudo enviar el evento
- Cabecera Content-Length ya presente
- Android devuelve cadena vacía HTTP
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?
- Android Store un objeto parcelable en SQLite
- Error de generación después de migrar de Crashlytics SDK a Tela