ah oui, excuse, je me sauvais comme un voleur
/* conversion de chaine UTF-8 <=> OEM */
#include <gtk/gtk.h>
#include <string.h>
Code :
- /* renvoie l'équivalent de Src en codage OEM */
- void Conv_UTF8_OEM(const char* Src, char *Res)
- {
- /* chaine temporaire */
- char *Temp; /* pointeur sur résultat */
- /* conversion en OEM */
- Temp = g_convert(Src,strlen(Src),"iso8859-1","utf-8",NULL,NULL,NULL);
- /* recopie du résultat */
- strcpy(Res,Temp);
- }
|
et surtout, j'ai fais çà :
Code :
- Conv_UTF8_OEM(gtk_entry_get_text(List_Objets->pGet_Nom),Nom);
|
c'est ce qui cahnge tout le problème.
En fait, au début, je copiais d'abord le contenu de mon entry dans une chaine de caractères, puis de convertissais cette chaine. J'avais bien pris soin de declarer cette chaine comme une gchar*, mais non, çà voulais pas marcher, alors j'ai lancé le debbugeur de VC++ une bonne vingtaine de fois pour voir ce qui se passait, bin la conversion marchait, mais le PB, c'est que cette de gchar ne semble pas etre reelement codé en Utf-8. Donc une partie du probème venait de là.
Mais sinon, il ne faut surtout pas renvoyer un pointeur sur une chaine, car cette dernière est détruite, c'et spour çà que j'ai creer une fonction de ce type.
donc les gchar
bon, maintenant, je trafique mon code avec un paquet de #if defined LINUX ....
pour faire en sorte que mon code soit portable.
J'espère qu'il le sera, mais je sens déjà une grosse couille arriver au niveau du codage des caractères. Sous windows, c'est iso8859-1 mais sous linux, j'en ais pas la moindre idée, et ç àva être sportif à trouver
@++++