在Win 7 64bits和VS2010上升級1.54 x64。編譯爲「64版」,並運行下面的代碼:boost :: locale :: to_lower throw bad_cast exception
#include <boost/locale/conversion.hpp>
std::wstring y = L"NoNseNSE";
std::wstring w = boost::locale::to_lower(y);
拋出std::bad_cast
例外。即使沒有添加之後改變(如在別處所建議的):
std::locale mylocale("");
std::locale::global(mylocale);
或改變to_lower(y)
到:to_lower(y, mylocale)
或使用std::string
代替std::wstring
或在環境設置LANG。
目標是轉換爲小寫的意大利語UTF-8單詞。我沒有發現這樣的問題,所以我認爲這是我的機器特定問題或增強庫問題。順便說一下,我已經從sourceforge下載了預編譯的boost庫(boost_1_54_0-msvc-10.0-64.exe)。任何想法? 謝謝!當您的區域傳遞到boost::locale::to_lower
馬里奧
如果使用utf8,則根據定義,'wstring'似乎不存在問題 – sehe