目前使用WSL2 Ubuntu, g++ 20.
在c++ 20中将wchar_t *转换为char *有哪些推荐的方法?我在几年前看到过类似的帖子,但我不确定它们是否仍然是可行的解决方案,或者它们是否被弃用了。据我所知,wcstombs(和wcsrtombs)在c++ 20中仍然是相关的:
#include <iostream>
#include <clocale>
#include <cstdlib>
int main()
{
std::setlocale(LC_ALL, "en_US.utf8");
// UTF-8 narrow multibyte encoding
const wchar_t* wstr = L"zu00dfu6c34U0001d10b"; // or L"zß水𝄋"
char mbstr[11];
std::wcstombs(mbstr, wstr, 11);
std::cout << "multibyte string: " << mbstr << 'n';
}