Я хочу преобразовать тип данных char16_t
в utf8, и я написал для этого следующий код:
// utf16 String
char16_t *wchs = u"UTF16 string";
// A converter object
wstring_convert<codecvt_utf8_utf16<char16_t>, char16_t> conv;
// Convert from utf16 to utf8
string str = conv.to_bytes(wchs);
// print the UTF-16 string after converting to UTF-8
cout << str << endl;
Предыдущий код не работает в Visual Studio, будь то 2015 или 2017 , в частности, с типом данных "char16_t" и выдает ошибку:
error LNK2001: unresolved external symbol "public: static class std::locale::id std::codecvt<char16_t,char,struct _Mbstatet>::id" (?id@?$codecvt@_SDU_Mbstatet@@@std@@2V0locale@2@A)
,
, но хорошо работает в компиляторе G CC.
Почему это произошло и как решить эту проблему ?