[英]boost::locale::to_lower throw bad_cast exception
在Win 7 64位和VS2010上提升1.54 x64。 編譯為“Release x64”並運行以下代碼:
#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
(默認為std::locale()
,即全局語言環境的副本)沒有安裝boost::locale::converter
facet時,拋出此異常。 有關相關文檔,請參閱此處。
使用boost::locale::generator
來創建語言環境。 (另請參閱文檔鏈接的示例,例如此文檔。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.