J'ai une seule chaîne codée UTF-8 qui est une chaîne de paires de clés + à la valeur requises pour être chargée dans un objet Propriétés. J'ai remarqué que j'avais des personnages brouillés avec ma mise en œuvre intentaire et après un peu de googling, j'ai trouvé cela Question qui indiquait ce que mon problème était - fondamentalement, les propriétés utilisent par défaut l'ISO-8859-1. Cette implémentation ressemblait à aucun codage spécifié, d'où mon problème. À ma question, je ne peux pas comprendre comment chaîner / créer un Tout conseil apprécié. P> P> lecteur code> /
INPUTStream code> à passer à
Propriétés.load () code> que Utilise la propriété
fournie code> et spécifie le codage. Je pense que cela est principalement dû à mon inexpérience dans les flux d'E / S et à la bibliothèque apparemment vaste des utilitaires IO dans le paquet Java.io. P>
3 Réponses :
Utilisez un lecteur code>
lorsque vous travaillez avec des chaînes. introuvable code>
s sont vraiment destinés aux données binaires.
public Properties load(String propertiesString) { Properties properties = new Properties(); properties.load(new StringReader(propertiesString)); return properties; }
Ce constructeur n'existe pas.
Merci, j'ai fait checkout stringreader , mais Je n'ai vu aucun constructeur de ce type.
Bravo Matt, vient d'essayer cette solution avec succès. N'utilisait pas de StringReader, car j'avais eu mes œuvres à la recherche de contrôle sur le codage. Merci beaucoup pour votre aide. UPVOTE + accepter pour vous mon ami.
De rien. Toutes mes excuses pour vous diriger initialement vers un constructeur inexistant.
Essayez ceci:
ByteArrayInputStream bais = new ByteArrayInputStream(propertiesString.getBytes("UTF-8")); properties.load(bais);
Je devais utiliser ceci au lieu du stringreader code> afin de prendre en charge Android SDKS plus anciens que Android-9.
System.out.println(getProperties().getProperty("key"))