+ std::vector<uint32_t> source2(wcstring.begin(),wcstring.end());\r
+ std::vector<std::string::value_type> dest(wcstring.size()*sizeof(std::wstring::value_type),0);\r
+ \r
+ const UTF32 *sourcestart=reinterpret_cast<const UTF32 *>(&source2[0]);\r
+ const UTF32 *sourceend=sourcestart+source2.size();\r
+\r
+ UTF8 *deststart=reinterpret_cast<UTF8 *>(&dest[0]);\r
+ UTF8 *destend=deststart+dest.size();\r
+\r
+ ConversionResult rval=ConvertUTF32toUTF8(&sourcestart,sourceend,&deststart,destend,lenientConversion);\r
+\r
+ if(rval!=conversionOK)\r
+ {\r
+ return false;\r
+ }\r
+\r
+ utf8string.assign(dest.begin(),dest.end()-(destend-deststart));\r
+\r