有没有一种优雅的方法可以在 Mac OS X 上将 'const wchar *' 转换为 'const char *'?
吉
使用wcstombs
:
size_t wcstombs(char *dest, const wchar_t *src, size_t n);
确保您的语言环境设置正确。
很难想象为什么要在 OS X 上使用 wchar_t,但下面是在标准 C++ 中如何做到这一点:
#include <codecvt>
int main() {
std::wstring_convert<std::codecvt_utf8<wchar_t>,wchar_t> convert;
wchar_t const *ws = L"Steve Nash";
std::string s = convert.to_bytes(ws);
char const *cs = s.c_str();
}