在C++ 0x中,将std::wstring
转换为UTF-8字节序列的方法是使用std::wstring_convert
和std::codecvt_utf8
。以下是一个示例代码:
#include<iostream>
#include<string>
#include<locale>
#include <codecvt>
std::string wstring_to_utf8(const std::wstring& wstr) {
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
return conv.to_bytes(wstr);
}
int main() {
std::wstring wstr = L"Hello, 世界!";
std::string utf8_str = wstring_to_utf8(wstr);
std::cout << "UTF-8 string: "<< utf8_str<< std::endl;
return 0;
}
这段代码将std::wstring
转换为UTF-8字节序列,并将其输出到控制台。在这个示例中,我们使用了std::wstring_convert
和std::codecvt_utf8
来完成转换。
需要注意的是,std::wstring_convert
和std::codecvt_utf8
是C++ 0x中的库,它们已经被C++ 11和C++ 14标准取代。因此,如果您使用的是C++ 11或C++ 14,请使用std::wstring_convert
和std::codecvt_utf8_utf16
。
领取专属 10元无门槛券
手把手带您无忧上云