プロジェクトでは、すべての内部文字列が utf-8 エンコーディングで保持されます。このプロジェクトは Linux と Windows に移植されています。現在、to_lower 機能が必要です。
POSIX OS では、std::ctype_byname("ru_RU.UTF-8") を使用できます。しかし、g++ (Debian 4.3.4-1) では、ctype::tolower() はロシア語の UTF-8 文字を認識しません (ラテン語のテキストは小文字で問題ありません)。
Windows では、"ru_RU.UTF-8" 引数を指定して std::ctype_byname を構築しようとすると、mingw の標準ライブラリが "std::runtime_error: locale::facet::_S_create_c_locale name not valid" という例外をスローします。
Windows で utf-8 の std::ctype を実装/検索するにはどうすればよいですか? プロジェクトはすでに libiconv に依存しています (codecvt ファセットはそれに基づいています) が、to_lower を実装する明確な方法がわかりません。