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)
|
std::wstring str2wstr(const std::string& str)
|
||||||
{
|
{
|
||||||
//mbstate_t st = {};
|
if (str.empty()) return {};
|
||||||
//std::wstring converted;
|
try
|
||||||
//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 {};
|
|
||||||
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converterX;
|
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converterX;
|
||||||
return converterX.from_bytes(str);
|
return converterX.from_bytes(str);
|
||||||
}
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
LOG("str2wstr error: %s", str.c_str());
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string wstr2str(const std::wstring & wstr)
|
std::string wstr2str(const std::wstring & wstr)
|
||||||
{
|
{
|
||||||
//mbstate_t st = {};
|
if (wstr.empty()) return {};
|
||||||
//std::string converted;
|
try
|
||||||
//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 {};
|
|
||||||
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converterX;
|
std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converterX;
|
||||||
return converterX.to_bytes(wstr);
|
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)
|
bool str_iequals(const std::string& a, const std::string& b)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user