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

Auteur Sujet: Ajouter des caractères  (Lu 1361 fois)

0 Membres et 1 Invité sur ce sujet

yolo974

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Ajouter des caractères
« le: Décembre 09, 2020, 12:29:32 pm »
Bonjour je suis actuellement sur un projet où je code un graphique mais le problème c'est que dans la légende il faut parfois que j'affiche des caractères tels que  η ("éta") UTF-16 Encoding : 0x03B7, mais la SFML ne l'affiche pas correctement J'ai cherché un peu partout je ne trouve pas de solution, mais j'avais vu que dans la version 1.6, d'après le tutoriel on pouvait ajouter son propre jeu de caractère, malheureusement cette fonctionnalité ne fonctionne pas en 2.x je voulais donc savoir si il y avait moyen de retrouvez cette fonctionnalité ou pas

Merci !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Ajouter des caractères
« Réponse #1 le: Décembre 09, 2020, 03:21:39 pm »
SFML gère bien les caractères Unicode, à supposer que :
- la police que tu utilises contient bien ces caractères
- tu as correctement défini ta chaîne dans ton code source
Laurent Gomila - SFML developer

yolo974

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Ajouter des caractères
« Réponse #2 le: Décembre 09, 2020, 03:31:43 pm »
Mon code actuellement est :
sf::Font font;
                                    font.loadFromFile("C:/Users/erwan/Desktop/CodesBocks/Cryptographie/Graph_2D/bin/Release/arial.ttf");
font.setString("η");
 
quant à ma police j'utilise arial.ttf

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Ajouter des caractères
« Réponse #3 le: Décembre 09, 2020, 04:44:06 pm »
Arial contient bien ce caractère, pas contre "η" écrit tel quel dans le code a très peu de chances de fonctionner :
- ton fichier source est sauvegardé avec un certain encodage (UTF-8 sous unix, CP1252 par défaut sous Windows)
- le compilateur va lire cette chaîne en supposant un certain autre encodage (là ça dépend du compilo et de l'OS)

A minima, ceci peut fonctionner :
font.setString(L"η");

... ou ceci :
font.setString(L"\x03B7");

Sinon il faudra t'intéresser d'un peu plus près aux problématiques d'encodage de texte ;)
Laurent Gomila - SFML developer

yolo974

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Ajouter des caractères
« Réponse #4 le: Décembre 09, 2020, 11:54:45 pm »
Bon la technique ne marche pas, je vais aller me documenter sur l'encodage de texte alors,
petite question, qu'est ce que le L avant les chaines de charactères ?

Merci encore

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Ajouter des caractères
« Réponse #5 le: Décembre 10, 2020, 07:49:40 am »
C'est pour indiquer une chaîne litérale "longue" (wide string), c'est-à-dire à base de wchar_t plutôt que char.

wchar_t n'a pas de définition standard, mais sous Windows il fait généralement 16 bits et sous-entend un encodage UCS-2. Ca permet donc d'avoir moins de problèmes qu'avec les encodages 8 bits.
Laurent Gomila - SFML developer