Je travaille en C sous linux et j'aimerai utiliser certains caractères que je sais existants... mais je ne les trouve pas. Il s'agit d'un programme de jeu de carte en mode console, et j'aimerai pouvoir afficher les caracteres pique, coeur, carreau et trèfle.
Note: j’ai déjà essayé de les trouver, sans succès en utilisant le petit programme suivant :
[codebox]#include <stdio.h>
int main(void)
{
char c = 0;
while (getchar())
{
printf("%d : %c\n", (int)c, c++);
}
Bon en fait j’ai essayé avec plusieurs encodages pour la console, ça n’a rien donné. Je me suis demandé si les fonts de ma console possédaient lesdits caracteres et taucune de celle que j’ai essayé n’a donné quelqu chose. Je ne désespère pas mais là tout de suite je ne sais pas trop quoi faire, et savoir où ils se trouvent dans la table ascii ne m’avance pas énormément (merci qd même), quelqu’un connait-il une librairie particulière d’affichage de texte? (rêvons, voire un truc qui fait de la couleur sous konsole et tout)
LoneWolf -> tu peux préciser pour le charset… je ne suis pas au point sur ces subtilités…
Je sais pas si ton cas particulier est possible mais pour faire des “interfaces texte”, la lib “ncurses” est vraiment pas mal et super bien documente sous linux (man curses ou ncurses je sais plus)
Reste a savoir si les caracteres que tu cherches sont dispo (et la, j’ai un peu la flemme de chercher B))
[quote=“LoneWolf, post:10, topic: 45420”]Je sais pas si ton cas particulier est possible mais pour faire des “interfaces texte”, la lib “ncurses” est vraiment pas mal et super bien documente sous linux (man curses ou ncurses je sais plus)
Reste a savoir si les caracteres que tu cherches sont dispo (et la, j’ai un peu la flemme de chercher :D)[/quote]
Ok, merci, je vais regarder ça. B)
[quote=“LoneWolf, post:10, topic: 45420”]LoneWolf
c’est qu’il est tot B)[/quote]
Ouep, mais j’étais même pas encore couché à cette heure là.
Finalement j’ai copié collé les caractères qui m’interessaient dansmon code depuis la fenêtre de code du message de proto. C’était sans grande conviction mais, surprise, ça marche. Il se trouve que ces caractères n’en sont pas vraiment, ils prennent 3 char dans une chaine.
Ils prennent 3 chars mais c’est bien 1 seul caractère à chaque fois encodé en UTF-8, Pour de plus ample information voici la le jeux de caractère contenant les 4 symboles en unicode : Miscellaneous symbols et comment passer de la représentation unicode brut en UTF-8 sur la wikipedia
Pour aider à comprendre comment nous obtenons ces caractères, prenons l’exemple du pique noir qui a pour code : U+2660 (en unicode). Ce code se trouve dans l’interval 000900-00FFFF et donc selon l’article de la wikipedia cet interval de caractère utilise le découpage suivant :
En associant chaque bit du code unicode de base avec le pseudo masque suivant xxxxyyyyyyzzzzzz,
nous le recombinons de cette manière : 1110xxxx 10yyyyyy 10zzzzzz (en binaire toujours) afin d’obtenir le code UTF-8 correspondant
Donc en découpant U+2660 en binaire nous obtenons :
0010 0110 0110 0000
xxxx yyyy yyzz zzzz (masque UTF).
d’où le caractère UTF-8 final (en binaire)
1110 0010 1001 1001 1010 0000
ce qui nous donne en hexa 0xE299A0, et qui correspond bien au code que tu as trouvé de manière empirique B)
Voilà donc ce code ne tombe pas du ciel, ce que tu utilises c’est de l’UTF 8 que tu peux retrouver ‘facilement’ via le premier site que j’ai linké qui donne tous les codes dans les différentes méthodes d’enregistrement de l’unicode (UTF-8 & UTF-16)