Cambié un archivo en Orbeon Forms, y la próxima vez que cargué la página, aparece un mensaje de error que dice Byte 2 no válido de una secuencia de 3 bytes UTF-8. ¿Como puedó resolver esté problema?¿Qué significa el mensaje "Byte no válido 2 de una secuencia UTF-8 de 3 bytes"?
Respuesta
Esto sucede cuando Orbeon Forms lee un archivo XML y espera que use la codificación UTF-8, pero de alguna manera el archivo no está codificado correctamente en UTF-8. Para solucionar esto, asegúrese de que:
Usted tiene una declaración XML al principio del archivo diciendo que el archivo está en UTF-8:
<?xml version="1.0" encoding="UTF-8" ?>
Su editor es XML-conscientes, para que pueda analizar la declaración XML y, en consecuencia, usar la codificación UTF-8. Si su editor no tiene conocimiento de XML y no desea usar otro editor, busque una opción o preferencia que le permita especificar que el editor debe usar UTF-8.
Estoy usando Eclipse y también tuve que cambiar el archivo de texto en la codificación:
-> Windows-> Preferencias> Espacio de trabajo
Entonces funcionó bien.
Gracias
A tres bytes UTF-8 secuencia es así:
1110xxxx 10xxxxxx 10xxxxxx
Su mensaje de error puede significar que el primer byte de los tres está decayendo incorrectamente el inicio de una secuencia de tres bytes o de lo contrario que el segundo byte está mal formado.
Como dice @avernet, debe asegurarse de que todos los elementos de su sistema estén produciendo y esperando UTF-8.
Es posible que tenga que configurar el Tomcat con el siguiente parámetro:
-Dfile.encoding = UTF-8
Had mismo problema.
Problema> Obtengo valores de certificado X509 (fuente de codificación múltiple) para generar un informe en PDF. El PDF se genera a través de un servicio web que espera una solicitud XML de UTF-8 y tengo que volver a codificar los valores antes de la clasificación.
Solución> http://fabioangelini.wordpress.com/2011/08/04/converting-java-string-fromto-utf-8/
El uso de esta clase:
public class StringHelper {
// convert from UTF-8 -> internal Java String format
public static String convertFromUTF8(String s) {
String out = null;
try {
out = new String(s.getBytes("ISO-8859-1"), "UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
return null;
}
return out;
}
// convert from internal Java String format -> UTF-8
public static String convertToUTF8(String s) {
String out = null;
try {
out = new String(s.getBytes("UTF-8"), "ISO-8859-1");
} catch (java.io.UnsupportedEncodingException e) {
return null;
}
return out;
}
}
Uso:
//getSummaryAttMap() returns a HashMap
String value = (String) getSummaryAttMap().get(key);
if(value != null)
value = StringHelper.convertToUTF8(value);
else
value = "";
Al iniciar el programa, utilice la siguiente Java argumento de la línea de comandos:
-Dfile.encoding=UTF-8
Por ejemplo,
java -Dfile.encoding=UTF-8 -jar foo.jar
Tengo el mismo problema en Eclipse, he intentado cambiando el tipo de archivo.
Haga clic derecho sobre el archivo -> Recursos -> codificación de archivos de texto (UTF-8)
Esta solución funcionó para mí.
Gracias.
Proporcionaré una respuesta de codificación especial. Cuando comprueba el archivo xml y no pasa nada, utiliza Java y ejecuta Tomcat Server. Su código fuente puede descuidar la especificación de la codificación usted mismo y, por lo tanto, JVM utiliza la codificación predeterminada cuando se lee en contenido xml como cadena u otra cosa que representa una cadena, que a su vez se refiere a la codificación predeterminada de Tomcat. Si la codificación de xml y Tomcat son inconsistentes, también podría informar el mismo mensaje de error.
- 1. byte no válido 2 de 2 bytes secuencia UTF-8
- 2. MalformedByteSequenceException: Byte inválido 2 de 2 bytes secuencia UTF-8
- 3. secuencia de bytes no válida para codificar "UTF8"
- 4. Tengo UTF-8, pero aún obtengo "Byte no válido 1 de 1 byte secuencia UTF-8"
- 5. UnicodeDecodeError, byte de continuación no válido
- 6. C# XmlWriter y UTF8 no válido caracteres
- 7. Explicación del error JAXB: bytes no válida 1 de 1 byte secuencia de codificación UTF-8
- 8. PostgreSQL + PHP + UTF8 = secuencia de bytes no válida para la codificación
- 9. Rails 3, heroku - PGError: ERROR: secuencia de bytes no válidos para la codificación "UTF-8":
- 10. ¿Qué significa este mensaje de error Ghostscript?
- 11. Python 2 a 3 bytes/error de cadena
- 12. NHibernate mensaje de error: índice no válido 3 para este SqlParameterCollection con Count = 3
- 13. ¿Tiene un carácter 1 byte o 2 bytes en Java?
- 14. copiar una secuencia vía byte []
- 15. 2 bytes representan 3 enteros en C
- 16. ¿Se ha producido un error de secuencia de bytes no válido en la entrada normalize_yaml_input?
- 17. pudo abrir la secuencia: argumento no válido
- 18. Error de Postgres en la inserción - ERROR: secuencia de bytes no válida para la codificación "UTF8": 0x00
- 19. códec utf8 no puede decodificar byte 0x96 en python
- 20. ¿por qué byte + = 1 compilar pero byte = byte + 1 no?
- 21. Ejemplo de cadena utf8 no válida?
- 22. ¿Qué significa tinyint (3) en SQL (SQLite)?
- 23. La mejor forma de acortar cadena UTF8 en función de la longitud del byte
- 24. Ruby Secuencia de bytes no válida en UTF-8
- 25. ¿Qué significa el mensaje de traza inversa de GDB "0x0000000000000000 in ??()"?
- 26. Cómo convertir una secuencia a un byte [] en Clojure?
- 27. ¿Qué significa el mensaje de error Firebug "XML no puede ser todo el programa"?
- 28. Rails send_data lanza "secuencia de bytes no válida en UTF-8" ... pero ¿por qué?
- 29. ¿ED A0 80 ED B0 80 es una secuencia de bytes UTF-8 válida?
- 30. Response.WriteFile - Escribe una secuencia de bytes
si alguien está interesado en un debate más genérico sobre Java y la codificación (y este tipo de errores), puede leer http://stackoverflow.com/questions/29434896/how-to-deal-with-java-encoding- problemas-especialmente-xml – Giovanni