从char16_t(utf16)到utf8的转换在Visual Studio 2015和2017中不起作用

问题描述 投票:0回答:1

我想将数据类型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;

先前的代码无论在2015年还是2017年都不适用于Visual Studio,特别是对于“ 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),但在GCC编译器中效果很好。

为什么发生以及如何解决该问题

c++ string utf
1个回答
0
投票

您可能不走运,因为VS Developer Community页面上至少有3个帖子描述了给定的问题

© www.soinside.com 2019 - 2024. All rights reserved.