Je vais préciser.
Je copie cette ligne (provenant d'un fichier)
France Inter;http://viphttp.yacast.net/V4/radiofrance/franceinter_bd.m3u;
dans la chaîne 'buffer' avec fgets.
Si j' affiche buffer, pas de problèmes d'encodage.
Je veux récupérer la première entrée (France Inter) dans une chaîne contenue dans une structure référencé , je fais :
while ((donnee->radio[a++] = buffer[a++]) != ';');
Si j' affiche donne->buffer ça me donne : "F?a?c ?n" et je reçois cette erreur :
(pep:6740): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()
OK, ça n'a pas l'air compliqué, bien que je ne comprenne pas (Mon système est en UTF-8).
Je fais :
1 2 3
| while ((tampon[a++] = buffer[a++]) != ';');
donnee->radio = g_locale_to_utf8(tampon, -1, NULL, NULL, NULL);
donnee->radio = tampon; |
Et reçois cette erreur :
(pep:6754): Gtk-CRITICAL **: gtk_combo_box_append_text: assertion `text != NULL' failed
Bon voilà, désolé de faire du GTK alors qu'il y a un forum pour ça, mais la question qui me turlupine (tiens firefox connais !) c'est :
Pourquoi lors d'une copie "char par char" j' obtiens des erreurs d'encodage ?
EDIT : "bien que je ne comprenne pas (Mon système est en UTF-8)."
Je ne nie pas n'avoir pas tout compris sur l'encodage des caractères.
Si vous voulez m'expliquer, au cas ou j'ai dis une grosse bêtise, c'est le moment
Partager