首页 新闻 会员 周边 捐助

C++ MFC如何将CString转换为string?

0
[已解决问题] 解决于 2016-09-14 17:13

我用的VS2013.

项目是在Unicode编码下的。

各种方法都试了,就是不行。。。。

之前可以用的方法,

CString str = finder.GetFilePath();
USES_CONVERSION;
char *psz = T2A(str);
string str2 = psz;

这个方法之前可以,后来不知道为什么,中文都变成了问号。

真是搞不懂了。

DeanKast的主页 DeanKast | 菜鸟二级 | 园豆:202
提问于:2016-09-07 14:47
< >
分享
最佳答案
1

试试这里的方法:

CString str(_T("Some Unicode goodness"));
CT2A ascii(str, CP_UTF8);
TRACE(_T("UTF8: %S\n"), ascii.m_psz);
奖励园豆:5
dudu | 高人七级 |园豆:30257 | 2016-09-07 15:55

你好,谢谢你的回复,我试了下,用你说的方法。

比如我转换:

"C:\\Users\\hason\\Desktop\\识别测试"

结果是:

"C:\Users\hason\Desktop\识别测试"

显示虽然是这样,但是好像可以访问这个路径,通过这个字符串。

这样正常么?求解释。

DeanKast | 园豆:202 (菜鸟二级) | 2016-09-13 10:39

@Dean-Feng: 这可能是显示字符串的代码问题

dudu | 园豆:30257 (高人七级) | 2016-09-13 13:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册