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");
- ¿Qué es eso "MainActivity.this no está encerrando clase" error en realidad?
- En Android, ¿cómo puedo encontrar el llamador de un método de manera eficiente
- ¿Podemos tener valor dentro del archivo de propiedades como una matriz de valores?
- Crear Apklib para construir con maven
- Android Facebook Login callback no funciona
- Cuando se procesa una cadena csv con un campo final vacío, myString.split (",") devuelve un número incorrecto de entradas de matriz
- ¿Cómo puedo hacer algo cada segundo?
- Por qué el archivo JAR compilado por Java SE, capaz de ejecutarse en Android
- Java.net.SocketException: Familia de direcciones no soportada por el protocolo en el emulador android
- Java.lang.noclassdeffounderror: com.google.android.gms.R $ estilo nada me ayudó
- ¿Cómo puedo configurar el color del trazo de la barra de calificación de Android? (No el color de las estrellas pero la FRONTERA)
- Cómo transferir una lista ArrayList
- Error: no se puede encontrar la clase de símbolo RecyclerView
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