我的输入是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。请帮忙!!
答案 0 :(得分:0)
不,你想做的不是你认为应该做的。
fopen()在任何情况下都无法处理系统上所有可能的文件名,因为它缺少unicode支持。
请参阅http://www.utf8everywhere.org了解如何使用_wfopen()。