我在几个地方读到过boost :: algorithm :: to_upper / to_lower对utf8来说不行:
但是在我的系统上,ubuntu 12.4.1 32位,增强1.46,以及locale en_GB.UTF-8,一切看起来都很好,只要我通过语言环境例如:
std::locale englishUTF8locale("en_GB.UTF-8")
boost::algorithm::to_upper_copy(L"ü", englishUTF8locale) -> L"Ü"
boost::algorithm::to_lower_copy(L"и", englishUTF8locale) ->L"И"
值得注意的是,它在使用std :: wstring时有效,但在使用std :: string时无效
那么,boost :: locale是不是真的有必要?我的问题是我只能使用boost 1.46,而locale是为1.48
创建的