2012-07-03 55 views

Respuesta

9

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:

  1. 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" ?> 
    
  2. 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.

+0

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

0

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

4

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.

0

Es posible que tenga que configurar el Tomcat con el siguiente parámetro:

-Dfile.encoding = UTF-8

0

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 = ""; 
3

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 
1

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.

0

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.

Cuestiones relacionadas