Hello,

Maybe you can try this approach:

~=~
//compile this with:
//gcc -g `pkg-config --cflags --libs glibmm-2.4` -o test test.cc
//assuming the filename is test.cc .

#include <locale.h>
#include <iostream>
#include <glibmm.h>

using namespace std ;

int
main (int argc, char **argv)
{
    //initialize the conversion functions correctly
    setlocale (LC_ALL, "") ;

    try {
        //convert a fixed char size string (where each char is 1 byte
long) into an utf8 string
        //(where each char can be between 1 and 4 bytes long)
        //using the conversion functions
        Glib::ustring utf8_str = Glib::locale_to_utf8 ("éçà") ;
    } catch (Glib::ConvertError &e) {
        cerr << "got converter error: " << e.what () << "\n";
        return -1 ;
    } catch (...) {
        cerr << "got an unknown error\n" ;
        return -1 ;
    }
    cout << "whoo, it works\n" ;
    return 0 ;
}
~=~

My locale is [EMAIL PROTECTED] Maybe this works for you.

Do not forget to call setlocale (LC_ALL, "") to initialize the charset
conversion subsytem.

Also, I think ustring("foo") cannot work properly if "foo" is not a
valid utf8 sequence.
In your case, "foo" is not. So if "foo" is a string for which each
character can fit in one byte, you should rather put "foo" in a
std::string and convert it to a valid utf8 string using
Glib::locale_to_utf8() .

I hope this helps.

Cheers,

Dodji.

On 8/1/06, Maik Beckmann <[EMAIL PROTECTED]> wrote:
> Hello!
>
> This code
>
> <code>
>         #include <glibmm.h>
>         #include <iostream>
>
>
>         int main(int argc, char **argv) {
>
>             Glib::ustring ustr ( "hää?" );
>
>             try {
>
>                Glib::locale_from_utf8(ustr);
>
>             } catch (Glib::ConvertError& e) {
>                 std::cout << e.what() << std::endl;
>             }
>
>             return 0;
>         }
> </code>
>
> produces
> <output>
>         Invalid byte sequence in conversion input
> </output>
>
> Is this the normal behavior of glibmm? If not, can some of you compile
> it and give me response, please.
>
>
> Thanks in advance, Maik
>
>
> PS:
> I'm using
>         glib-2.12.1
>         glibmm-2.11.3
> on a gentoo-linux x86 maschine with this
>
>         [EMAIL PROTECTED] ~ $ locale
>         LANG=de_DE.utf8
>         LC_CTYPE="de_DE.utf8"
>         LC_NUMERIC="de_DE.utf8"
>         LC_TIME="de_DE.utf8"
>         LC_COLLATE="de_DE.utf8"
>         LC_MONETARY="de_DE.utf8"
>         LC_MESSAGES="de_DE.utf8"
>         LC_PAPER="de_DE.utf8"
>         LC_NAME="de_DE.utf8"
>         LC_ADDRESS="de_DE.utf8"
>         LC_TELEPHONE="de_DE.utf8"
>         LC_MEASUREMENT="de_DE.utf8"
>         LC_IDENTIFICATION="de_DE.utf8"
>         LC_ALL=de_DE.utf8
>
> locales.
>
>
> _______________________________________________
> gtkmm-list mailing list
> [email protected]
> http://mail.gnome.org/mailman/listinfo/gtkmm-list
>
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to