Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème affichage des accents d'un string lu depuis un fichier (Résolu)  (Lu 1937 fois)

0 Membres et 1 Invité sur ce sujet

Jlppc

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Bonjour,
J'ai essayé de trouver un sujet qui correspond a mes besoins, mais n'en trouvant pas, je poste le mien. Désolé d'avance si ce problème a déjà été résolu dans un autre sujet.
Je suis actuellement en train de développer un jeu, et, pour pouvoir gérer plusieurs langues, j'ai stocké mes chaînes de caractères dans un fichier texte que je lis ensuite pour pouvoir afficher le texte dans le jeu. Le problème, c'est qu'a la place des accents se trouve un rectangle. J'ai essayé de changer l'encodage du fichier, d'utiliser l'objet sf::String, rien n'y fait, pas d'accents. Voici un code représentant mon problème :
        ifstream file("strings.txt");
        std::string read;
       
        sf::Text txt;

        getline(file, read);
        sf::String str(read);
       
        txt.setString(str);
        fen.draw(txt);//fen est un objet sf::RenderWindow initialisé avant
        fen.display();
 
Je n'ai pas mis tout le code, ce serait bien sur trop long, mais j'estime avoir mis l'essentiel. Si il vous manque des informations, ou si vous pensez que j'ai oublié quelque chose (ce qui est fort possible), n'hésitez pas a me le demander.
Si vous avez besoin de quelques informations supplémentaires, je code avec Code::blocks en utilisant gcc 5.4.0 avec sfml 2.3, sous Linux Mint 18, et je suis débutant sur sfml.

Merci d'avance pour vos réponses!
« Modifié: Mai 21, 2017, 05:57:11 pm par Jlppc »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème affichage des accents d'un string lu depuis un fichier
« Réponse #1 le: Mai 20, 2017, 09:42:51 pm »
Ici à aucun moment tu n'indiques d'encodage, donc tu fais confiance à la valeur par défaut des divers encodages qui interviennent dans cette opération. Et c'est mal ;D

Le plus simple est d'expliciter les encodages pour éviter les surprises. Par exemple, enregistre ton fichier en UTF-8 et utilise sf::String::fromUtf8.

Ensuite, autre problème potentiel, et qui est probable vu que tu as des carrés et non des caractères non-voulus, assure-toi bien que ta police de caractères définit les glyphes que tu veux lui faire afficher.
Laurent Gomila - SFML developer

Jlppc

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
    • E-mail
Re: Problème affichage des accents d'un string lu depuis un fichier
« Réponse #2 le: Mai 21, 2017, 05:56:28 pm »
Bonjour, merci de m'avoir répondu, et en effet, en utilisant fromUtf8, ça marche!

Merci de votre réponse!