Lecture du fichier de propriétés contenant utf 8 caractères
Je suis de la lecture d'un fichier de propriétés qui se compose d'un message dans le caractère UTF-8.
Problème
La sortie n'est pas dans le format approprié. Je suis en utilisant un InputStream
.
Le fichier de propriétés ressemble
username=LBSUSER
password=Lbs@123
url=http://localhost:1010/soapfe/services/MessagingWS
timeout=20000
message=Spanish character are = {á é í, ó,ú ,ü, ñ, ç, å, Á, É, Í, Ó, Ú, Ü, Ñ, Ç, ¿, °, 4° año = cuarto año, €, ¢, £, ¥}
Et je suis de la lecture du fichier comme ceci,
Properties props = new Properties();
props.load(new FileInputStream("uinsoaptest.properties"));
String username = props.getProperty("username", "test");
String password = props.getProperty("password", "12345");
String url = props.getProperty("url", "12345");
int timeout = Integer.parseInt(props.getProperty("timeout", "8000"));
String messagetext = props.getProperty("message");
System.out.println("This is soap msg : " + messagetext);
La sortie du message ci-dessus est
Vous pouvez voir le message dans la console après la ligne
{************************ SOAP MESSAGE TEST***********************}
Je vais être obligé si je peux obtenir aucune aide de la lecture de ce fichier correctement. Je peux lire ce fichier avec une autre approche, mais je suis à la recherche pour les moins de modification de code.
OriginalL'auteur Som | 2015-06-10
Vous devez vous connecter pour publier un commentaire.
Utiliser un
InputStreamReader
avecProperties.load(Reader reader)
:props.load(propFile)
et il fonctionne bien, mais dans windows, j'ai dû utiliser le code ci-dessus à la charge de l'unicode fichier prop correctement!Il n'est pas étrange, après tout. Les jeux de caractères sont fortement dépendantes des plate-formes. Donc, il ne faut pas s'étonner que Ubuntu se comporte différemment de Windows. En fait, vous pourriez avoir à changer votre code encore une fois après le passage à la prochaine version de Windows (ou pour être plus précis: une autre version de la JVM).
FileInputStream inputStream=new FileInputStream(new File(propFileName) throws
FileNotFoundException
. Où propFileName estconfig/cop-app-dev.properties
C'est une autre question. Assurez-vous que le fichier de propriétés est présent (et lisible) par rapport à votre exécutable java. En cas de doute, essayez un chemin d'accès absolu.
Oui. Il est présenté et accessible. Je peux atteindre cette propriété de fichier à l'aide de
InputStream inputStream=getClass().getClassLoader().getResourceAsStream(propFileName)
etproperties.load(inputStream);
OriginalL'auteur Würgspaß
Utilisation
props.load(new FileReader("uinsoaptest.properties"))
à la place. Par défaut, il utilise l'encodageCharset.forName(System.getProperty("file.encoding"))
qui peut être défini à l'UTF-8 avecSystem.setProperty("file.encoding", "UTF-8")
ou avec la ligne de commande paramètre-Dfile.encoding=UTF-8
.OriginalL'auteur Binkan Salaryman
Vous devez spécifier l'encodage UTF-8 lorsque vous construisez votre objet FileInputStream. Vous pouvez utiliser ce constructeur:
Si vous voulez faire un changement à votre JVM de manière à être en mesure de lire les fichiers UTF-8 par défaut, vous devez modifier le JAVA_TOOL_OPTIONS dans vos options JVM à quelque chose comme ceci :
oui vérifier le constructeur, peut être u était sur le point d'écrire quelque chose d'autre..
Je voulais dire
FileInputStream.<init>(String, String)
...oui oui je me rends compte plus tard ...
Salaryman qu'est-ce que
FileInputStream.<init>(String, String)
??? Je ne comprends pasOriginalL'auteur JavaFanatic