improve wstr conversion
This commit is contained in:
34
src/util.cpp
34
src/util.cpp
@@ -571,31 +571,33 @@ 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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user