如何转换 'const wchar*'到“const char*”在 Mac OS X 上?

发布于 2024-08-09 06:06:44 字数 75 浏览 0 评论 0原文

有没有一种优雅的方法可以在 Mac OS X 上将“const wchar *”转换为“const char *”?

Is there a elegant way to convert 'const wchar *' to 'const char *' on Mac OS X?

Kat

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过气美图社 2024-08-16 06:06:44

使用wcstombs:

size_t wcstombs(char *dest, const wchar_t *src, size_t n);

确保您的区域设置正确。

Use wcstombs:

size_t wcstombs(char *dest, const wchar_t *src, size_t n);

Make sure you have your locale set appropriately.

罗罗贝儿 2024-08-16 06:06:44

很难想象为什么要在 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();
}

It's hard to imagine why one would be using wchar_t on OS X, but here's how it can be done in standard 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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文