首页 文章

使用wcstombs()将wchar_t *(包含Unicode)转换为依赖于语言环境的MBCS(char *)

提问于
浏览
0

我的输入是Unicode字符,例如:“(U 00DB)(U 0081)”(wchar_t *) . 我使用wcstombs将这个宽字符串转换为char *(MBCS) . 由于Unicode已经以UTF-8编码,我希望它能够逐字节地复制Unicode作为DB81 char * . 但相反,我得到c3 9b . 这发生在Linux和Windows上我只得到“DB 81” .

我需要打开一个名为DB 81的文件(如hexdump所示),但fopen使用char * filename . 因此,我必须将此wchar_t *转换为MBCS . 请帮忙!!

1 回答

  • 0

    不,你想做的不是你认为你应该做的 .

    fopen()在任何情况下都无法处理系统上所有可能的文件名,因为它缺少unicode支持 .

    请参阅http://www.utf8everywhere.org以了解如何使用_wfopen()进行操作 .

相关问题