gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed



  • Hallo!

    Ich versuche gerade eine TextView mit etwas Text zu füllen:

    textView->get_buffer()->set_text(myText);
    

    Meistens kalppt das auch, aber manchmal wird statt des Textes nichts angezeigt und ich bekomme in der Konsole den folgenden Fehler:

    gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed
    

    AFAIK liegt das daran das der darzustellende Text Zeichen enthält, die gtkmm nicht kennt.
    Was kann ich dagegen tun?

    MfG
    teh_koda



  • teh_koda schrieb:

    Meistens kalppt das auch, aber manchmal wird statt des Textes nichts angezeigt und ich bekomme in der Konsole den folgenden Fehler:

    gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed
    

    ja, das ist nicht utf8 konformer Text.

    AFAIK liegt das daran das der darzustellende Text Zeichen enthält, die gtkmm nicht kennt.
    Was kann ich dagegen tun?

    Sicherstellen, dass du nur utf8 konformen Text einfügst, mehr geht nicht...

    MfG

    GPC



  • Du musst den Text vorher nach UTF-8 konvertieren. Das macht gtkmm leider nicht selbst:

    textView->get_buffer()->set_text(Glib::convert_with_fallback(myText, "UTF-8", "ISO-8859-1"));
    

Anmelden zum Antworten