9

私はいくつかの場所でboost::Algorithm :: to_upper /to_lowerがutf8では問題ないことを読みました:

しかし、私のシステムでは、ubuntu 12.4.1 32ビットとブースト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用に作成されていることです。

4

0 に答える 0