Pregunta

¿Puedo usar java.util.Properties con una codificación diferente a la predeterminada?

¿Fue útil?

Solución

No a menos que tú

  1. están ejecutando java 6 o posterior
  2. controla el código que carga el archivo de propiedades y puede usar un lector.Ver el javadoc.

Este es un defecto bastante molesto en la especificación.Existen varias soluciones, probablemente la más sencilla sea generar automáticamente un archivo .properties compatible con escape Unicode a partir de una fuente con codificación apropiada (cp1250, utf-8, lo que sea).

Java viene con un transcodificador llamado nativo2ascii para hacer esto por ti:

Hay algunas RFE antiguas sobre este tema:

Otros consejos

Sí, pero entonces usted tiene que tener cuidado de usar el load() y store() métodos que toman un Reader / Writer, y explícitamente construyen aquellos usando un InputStreamReader/OutputStreamWriter con la codificación correcta.

Esto puede no ser posible con bibliotecas que utilizan archivos de propiedades de forma implícita.

Editar:. Los métodos descritos anteriormente sólo se han introducido en Java 1.6 - para las versiones anteriores, estás de suerte, como escribió dsadinoff

Si el archivo de propiedades está disponible en tiempo de compilación, también se puede convertir en el script de hormigas usando la tarea native2ascii:

<property name="javac.source.encoding" value="Cp1250"/>

<native2ascii src="${src.dir}" dest="${classes.dir}"
   encoding="${javac.source.encoding}"
   includes="**/*.properties"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top