wstring_convert::from_bytes
возвращает std::basic_string
. Эта строка будет уничтожена в конце строки, и указатель, возвращенный из data()
, больше не будет действительным.
Есть ли причина, по которой вы не просто конвертируете напрямую в wchar_t
?
wstring utf8_to_uft16( string str )
{
wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t> convert;
return convert.from_bytes( str );
}