In a project all internal strings are kept in utf-8 encoding. The project is ported to Linux and Windows. There is a need for a to_lower functionality now.
On POSIX OS I could use std::ctype_byname("ru_RU.UTF-8"). But with g++ (Debian 4.3.4-1), ctype::tolower() don't recognize Russian UTF-8 characters (latin text is lowercased fine).
On Windows, mingw's standard library throws exception "std::runtime_error: locale::facet::_S_create_c_locale name not valid" when I try to construct std::ctype_byname with "ru_RU.UTF-8" argument.
How do I implement/find std::ctype for utf-8 on Windows? The project already depends on libiconv (codecvt facet is based on it), but I don't see an obvious way to implement to_lower with it.