повысить конверсию локали? - PullRequest
1 голос
/ 06 декабря 2011

Может кто-нибудь объяснить, как работает следующий пример ?

Я не понимаю, как это может работать без использования boost :: locale :: to_upper вместо boost :: to_upper?

Будет ли boost :: to_upper использовать locale :: global? Я думал, что обычная штука / локаль не может поддерживать utf-8, так как она работает на символьной основе?

EDIT:

Также допустим gen ("UTF-8")?

Кроме того, как boost :: locale работает с boost :: regex, является ли boost :: 32regex все еще необходимым для работы со строками utf-8?

1 Ответ

2 голосов
/ 08 января 2012

В этом примере есть два использования to_upper():

  1. to_upper("grüßen"), которое разрешается с помощью объявления использования using namespace boost::locale.Говорят, что это дает правильный результат, то есть GRÜSSEN.
  2. boost::to_upper_copy(std::string("grüßen")), который, похоже, является версией, которую вы называете «boost :: to_upper».Говорят, что это приводит к неверному результату, то есть GRÜßEN.

Кажется, что основная причина вашего недоразумения заключалась в том, что вы предположили, что "boost :: to_upper" делаетправильные вещи, хотя на самом деле это означает делать неправильные вещи.

...