Murray Cumming schrieb: >> std::string linetmp; >> std::getline(source, linetmp); >> line = linetmp; >> linetmp = line; >> std::cout << linetmp << "\n"; >> >> works, >> >> std::string linetmp; >> std::getline(source, linetmp); >> line = linetmp; >> linetmp = line; >> std::cout << line << "\n"; >> >> still doesn't. > > I believe that this is relevant: > http://www.gtkmm.org/docs/glibmm-2.4/docs/reference/html/classGlib_1_1ustring.html#_details > (see "Glib::ustring and stream input/output") > > I think you need to know what encoding your string has, and convert it > when appropriate. You should also catch exceptions for when this fails. >
std::string linetmp; std::getline(source, linetmp); line = Glib::locale_to_utf8(linetmp); std::cout << line << "\n"; fails in the call to Glib::locale_to_utf8. here's the output of locale: LANG=de_DE.UTF-8 LC_CTYPE="de_DE.UTF-8" LC_NUMERIC="de_DE.UTF-8" LC_TIME="de_DE.UTF-8" LC_COLLATE="de_DE.UTF-8" LC_MONETARY="de_DE.UTF-8" LC_MESSAGES="de_DE.UTF-8" LC_PAPER="de_DE.UTF-8" LC_NAME="de_DE.UTF-8" LC_ADDRESS="de_DE.UTF-8" LC_TELEPHONE="de_DE.UTF-8" LC_MEASUREMENT="de_DE.UTF-8" LC_IDENTIFICATION="de_DE.UTF-8" LC_ALL= So everything should be UTF-8 (I can display the file with the problematic line ";add 𝔐, v1, v2" with cat, edit it in gedit, etc). Philipp _______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
