Tengo algunos problemas con los caracteres (ä, å, ö) por lo general los convierto a
å=\u00e5 ä=\u00e4 ö=\u00f6No puedo deshacerme de estos en este momento porque estoy usando un Apache Wicket de tecnología antigua. mi archivo Language.proprites se ve así
calendar-event-group-configuration=Konfigurationsgrupp f\u00f6r evenemangCuando estoy leyendo archivos .properties, entro en la consola (usando un paquete npm llamado ('properties-reader')):
Konfigurationsgrupp f\\u00f6r evenemangEspero obtener:
Konfigurationsgrupp för evenemango
Konfigurationsgrupp f\u00f6r evenemangpero esto sucede porque mi código agrega una barra invertida más al valor debido al uso del paquete npm 'properties-reader'
aquí está mi código:
const fs = require("fs"); const PropertiesReader = require("properties-reader"); const properties = PropertiesReader("./Language_sv.properties").getAllProperties(); console.log(properties);alguien tiene una mejor idea para obtener todas las propiedades en el objeto
Language_sv.properties es el archivo que tiene:
calendar-event-group-configuration=Konfigurationsgrupp f\u00f6r evenemangEncontré otro paquete llamado ('propiedades') que no tiene el problema con el anterior, pero no sé cómo puedo sacar el objeto (obj) de la función
const fs = require("fs"); var prop = require ("properties"); prop.parse ("./Language_sv.properties", { path: true }, function (error, obj){ if (error) return console.error (error); console.log (obj); });Su problema es que el lector de propiedades no comprende los caracteres Unicode. Una forma de evitarlo es posprocesar los valores de propiedad después de leerlos.
const fs = require("fs"); const PropertiesReader = require("properties-reader"); const properties = PropertiesReader("./Language_sv.properties", 'utf-8').getAllProperties(); console.log(properties); for(let i in properties){ properties[i] = properties[i].split('"').join('\\"') properties[i] = decodeURIComponent( JSON.parse('"' +properties[i] + '"') ) } console.log(properties);Aquí convierto el valor de la propiedad en una cadena encerrada entre comillas y luego la analizo con JSON.parse. Analiza correctamente la barra invertida escapada. Y decodeURIComponent convierte la secuencia de escape Unicode en el carácter.