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();
}