Bonjour,
j'aimerais savoir comment faire pouvoir afficher un text UTF-8 dans un gtk_text_view après avoir chiffrer le text par RSA par exemple ? car j'obtient une erreur me disant que la chaine n'est pas UTF-8
Bonjour,
j'aimerais savoir comment faire pouvoir afficher un text UTF-8 dans un gtk_text_view après avoir chiffrer le text par RSA par exemple ? car j'obtient une erreur me disant que la chaine n'est pas UTF-8
je dis peut-être une betise mais tu pourrrais relier un buffer au textview et ensuite insérer ton texte dans le buffer grâce à gtk_text_buffer_insert
Les apramètre sont :
- Le buffer à qui tu veux mettre le texte
- le iter de départ (tu te servira de la fonction "gtk_text_buffer_get_start_iter" sur un iter par rapport à ton buffer)
- ton texte
- -1 pour eviter de limiter ton texte
Voila j'espere t'avoir aidé
en fait pour le moment j'utilise déjà un buffer avec des get et set text (c'est a ce moment la que GTK me met cette erreur)
je récupère le texte comme cela :
mais après je n'arrive pas a modifier la valeur des caractères de façon a toujours obtenir un texte affichable. Comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 gtk_text_buffer_get_start_iter(texte->cl_text,&cl_base); gtk_text_buffer_get_end_iter(texte->cl_text,&cl_end); str=gtk_text_buffer_get_text(texte->cl_text,&cl_base,&cl_end,TRUE); avec GtkTextIter cl_base; GtkTextIter cl_end; GtkTextIter cr_base; gchar* str; et les cl_text qui est un textbuffer
Bonjour,
J'ai pas tout suiviEnvoyé par DeusP
Tu as un texte, tu le crypte avec RSA et tu veux l'insérer dans un GtkTextview ?
Si c'est chiffré, tu n'obtiens pas forcement des caractères lisibles (c'est un peu le but du jeux).
et n'y a t'il aucun moyen d'afficher ce texte même si ce texte n'est pas lisible ? et ensuite le sauver dans un document texte si besoin ?
Ca reviendrait à afficher le contenu d'un fichier binaire, ie tu peux l'afficher, mais c'est inexploitable. T'as une idée de ce que tu veux obtenir à l'écran ??
une idée oui je voudrais juste afficher ce que donne la version crypter du texte afin de voir si le cryptage a put être effectué et aussi pour pouvoir décrypter le texte à partir de ce qui est obtenu et donc travailler la encore à partir d'un gtkTextBuffer. C'est pour cela que je voudrais l'afficher
t'as vérifié que si tu faisais un printf sur la chaîne que tu as obtenues, ça correspond bien à ce que tu aimerais afficher dans le gtktextview ?
la sortie de la chaine avec un g_print est "incohérent" au sens ou il est illisible (ce qui est le but du jeu) et me conviendrais tout a fait puisqu'il correspond a ce que l'on peut voir dans le contenu de mails crypté par exemple
J'avais l'impression qu'il y avait moyen d'afficher un texte crypté avec RSA en utilisant que des caractères ascii 7 bits (auquel cas la chaîne s'afficherait sans problème dans ton GtkTextView). Si tu veux afficher la version binaire, une conversion d'iso8859-15 en utf-8 avec g_convert devrait faire l'affaire
ca aurait put être une bonne solution mais je dois pouvoir crypter des caractères de type chinois c'est pour cela que j'étais parti sur de l'UTF-8 mais cela me pose bien des problèmes
J'ai l'impression que tu te poses beaucoup de questions.... Si tu veux afficher le message originel avec les caractères chinois, là tu as effectivemnet besoin de la chaîne en UTF-8 et tu ne peux pas faire de conversion. Par contre, après la crypto, ta chaîne ne sera plus une chaîne en chinois ou en hindi ou en je sais pas quoi, ça sera une suite de valeurs binaires qui ne correspondent pas à des caractères, ie y a aucune notion d'encodage ou de "bon" charset à utiliser pour afficher la chaine de façon "lisible".
Donc la conversion iso8859-15=>UTF-8 a du sens, et on s'en fout un peu de ce que tu avais au départ comme charset pour ta chaîne.
merci je vais tenter sur cette voie donc et voir ce que cela donne
EDIT : finalement j'ai choisi une méthode beaucoup moins stupide qui consiste a écrire directement les valeurs hexadécimales des caractères encodés cela permet d'être indépendant de l'encodage qui comme vous l'avez souligné ne veut plus rien dire dans ce cas
merci pour vos réponses
Partager