improve wstr conversion

This commit is contained in:
2019-09-23 09:07:44 +02:00
parent d91f730cbd
commit 884ebca453

View File

@@ -571,30 +571,32 @@ std::string unescape(const std::string& s)
std::wstring str2wstr(const std::string& str)
{
//mbstate_t st = {};
//std::wstring converted;
//converted.resize(str.size());
//const char* ptr = str.c_str();
//std::mbsrtowcs((wchar_t*)converted.data(), &ptr, converted.capacity(), &st);
//return converted;
if (str.empty())
return {};
if (str.empty()) return {};
try
{
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converterX;
return converterX.from_bytes(str);
}
catch (...)
{
LOG("str2wstr error: %s", str.c_str());
return {};
}
}
std::string wstr2str(const std::wstring & wstr)
{
//mbstate_t st = {};
//std::string converted;
//converted.resize(wstr.size());
//const wchar_t * wptr = wstr.c_str();
//std::wcsrtombs((char*)converted.data(), &wptr, converted.capacity(), &st);
//return converted;
if (wstr.empty())
return {};
if (wstr.empty()) return {};
try
{
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converterX;
return converterX.to_bytes(wstr);
}
catch (...)
{
LOGW(L"wstr2str error: %s", wstr.c_str());
return {};
}
}
bool str_iequals(const std::string& a, const std::string& b)