boost:: алгоритма::to_upper/to_lower нормально для utf8? boost::locale не нужен?

Я читал в нескольких местах, что boost:: attribute::to_upper/to_lower не подходят для utf8:

Но в моей системе, ubuntu 12.4.1 32 бита с boost 1.46 и языковой стандарт 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 на самом деле не нужен? Моя проблема в том, что я могу использовать только буст 1.46, а локаль была создана для 1.48

0 ответов

Другие вопросы по тегам