Tengo una sola Cadena codificada en UTF-8 que es una cadena de pares clave + valor que se debe cargar en un objeto Propiedades. Me di cuenta de que estaba obteniendo caracteres ilegibles con mi implementación inicial y después de buscar en Google, encontré este Question que indicaba cuál era mi problema, básicamente que Properties está usando por defecto ISO-8859-1. Esta implementación se parecía aCadena Java codificada en UTF-8 en las Propiedades
public Properties load(String propertiesString) {
Properties properties = new Properties();
try {
properties.load(new ByteArrayInputStream(propertiesString.getBytes()));
} catch (IOException e) {
logger.error(ExceptionUtils.getFullStackTrace(e));
}
return properties;
}
No se especificó ninguna codificación, de ahí mi problema. A mi pregunta, no puedo averiguar cómo encadenar/crear una combinación de Reader
/InputStream
para pasar al Properties.load()
que usa el propertiesString
provisto y especifica la codificación. Creo que esto se debe principalmente a mi inexperiencia en las secuencias de E/S y la biblioteca aparentemente enorme de utilidades de IO en el paquete java.io.
Cualquier consejo apreciado.
ese constructor no existe. – BalusC
Gracias, hice checkout [StringReader] (http://docs.oracle.com/javase/6/docs/api/java/io/StringReader.html), pero no vi tal constructor. – markdsievers
Cheers Matt, acabo de probar esta solución con éxito. No usé StringReader inicialmente porque tenía mis anteojeras buscando control sobre la codificación. Muchas gracias por su ayuda. Voto + acepta para ti mi amigo. – markdsievers