The locale name should be "en_US.UTF-8" or "ru_RU.UTF-8", the default UTF-8 locale is for default system locale "". When you set locale as "en" it assumes that encoding (as not specified) is US-ASCII and conversion fails. Artyom Beilis -------------- CppCMS - C++ Web Framework: http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/
________________________________ From: NtVisigoth
To: boost-users@lists.boost.org Sent: Tuesday, July 10, 2012 12:36 PM Subject: [Boost-users] Boost 1.49 Locale Conversion failed Hello, everyone!
I have already answred here: http://lists.boost.org/boost-users/2012/07/75097.php But previous latter badly typed.
When using boost::locale with the russian language of the string in UTF-8 encoding I get an error while getting the locale. An exception with the message e.what(): "Conversion failed" is thrown
My code is not very different from that in the examples:
#define TR(S) boost::locale::translate(S).str() const std::string strDefaultLangId( "en" ); int main( int argc, char * argv[] ) { using namespace std; using namespace boost::locale; int exitCode = EXIT_SUCCESS; try { generator gen; gen.add_messages_path("g:\\source\\boost_locale\\languages\\"); gen.add_messages_domain("messages"); std::string language( argc == 2 ? argv[1] : strDefaultLangId.c_str() ); std::locale loc = gen( language ); locale::global( loc ); std::wstring s = TR(L"hello world"); wcout << s << endl; } catch( exception& e ) { cout << "Error : " << e.what() << endl; exitCode = EXIT_FAILURE; } catch( ... ) { cout << "Unknown error" << endl; exitCode = EXIT_FAILURE; } return exitCode; }
The path to the file with the russian language: "g:\source\boost_locale\languages\ru\LC_MESSAGES\messages.mo"
What could be wrong? * Is it necessary to use the backends? * Is it yet necessary to call imbue on the stream? But I'd like avoid it because I am going to write the log using glog.
Compillers : Microsoft Visual Studio 2008 and 2010 Boost version : 1.49
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users