Problème accents yml file

RedHeadEmile

Codeur Java qui code en Java
6 Novembre 2015
121
1
130
Bonjour bonsoir, après avoir bossé sur un fichier yml custom pour les message de mon plugin, j'ai eu quelques problème, il n'est pas encodé en UTF-8, donc les accent donne des caractère bizard etc..
Voila comment j'utilise mes fichier yml :
Code:
    static File file =  new File(Main.getInstance().getDataFolder(), "message_"+GetInfo.getLanguage()+".yml");
    static YamlConfiguration conf = YamlConfiguration.loadConfiguration(file);
et
Code:
p.sendMessage(conf.getString("ligne1.ligne2"));
Mais les accent et autre caractère spéciaux ne sont pas encodé, comment je pourrais faire pour qu'il le soit ?
 
Salut,

Essaye de lancer ton serveur avec cet argument: -Dfile.encoding=UTF-8
Donc concrètement, la commande pour lancer ton serveur est surement quelque chose qui ressemble à ça:
Code:
java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
Essaye avec qqch comme ça:
Code:
java -Xmx1024M -Xms1024M -Dfile.encoding=UTF-8 -jar minecraft_server.jar nogui
Et évidemment, enregistré ton fichier en UTF-8 ;)


Cordialement,
Detobel36
 
Salut,

Je suppose que ton fichier est en AINSI par défaut, ça donne quoi quand tu le convertis manuellement en UTF-8 ? Tu peux le faire à l'aide d'un éditeur de code tel que Notepad++ (Encodage > Convertir en UTF-8).

Et un début de réponse, pour forcer le fichier à être en UTF-8. Je ne suis pas développeur donc je ne sais pas ce que ça vaut vraiment.
https://gist.github.com/DrkMatr1984/8523072

Voici également un topic qui en parle, peut-être que ça t'apprendra quelque chose.
https://bukkit.org/threads/force-yml-file-encoding-to-utf-8.403194/
 
Je suis déjà tomber sur c'est topic en cherchant, mon problème n'est pas de savegarder la config, les accents sont parfaitement préservé quand le fichier est créé dans le dossier de mon plugin, mais c'est quand je veux lire dans ce fichier, utiliser un 'getString("blalba")' que les accents ne fonctionne pas (Et je parle d'un fichier yml qui est dans le dossier du plugin).
 
Salut,

Ton IDE est bien en UTF-8 ?
Comment créé tu le fichier de config ? C'est celui par défaut de Bukkit ou il est à la racine de ton projet ? Est-tu sur qu'a la base il est en UTF-8 (c'est pas parce que les accents s'affichent bien qu'il est en UTF-8 ;) ).


Cordialement,
Detobel36
 
Voila le code pour créer le fichier :
Code:
    public void loadFile() {
        mfile = new File(Main.getInstance().getDataFolder(), "message_"+GetInfo.getLanguage()+".yml");
       
        if(!mfile.exists()) {
            try {
                files.copy(Main.getInstance().getResourceAsStream("message_"+GetInfo.getLanguage()+".yml"), this.mfile);
            }catch(IOException e){e.printStackTrace();}
        }
    }
la method copy :
Code:
    public void copy(InputStream src, File dst) throws IOException {
        if (!dst.getParentFile().exists())
            dst.getParentFile().mkdirs();
        InputStream in = src;
        OutputStream out = new FileOutputStream(dst);
       
        byte[] buf = new byte[1024];
        int len = in.read(buf);
        while (len != -1) {
            out.write(buf, 0, len);
            len = in.read(buf);
        }
        out.close();
        try {
            in.close();
        }catch(Exception e){e.printStackTrace();}
    }
Et j'ai déjà montré comment je faisais pour lire le fichier.