您的位置:首页 > 其它

wcstombs在中文环境下的一个设置

2012-06-26 09:58 176 查看
CString strTemp;
GetDlgItemText(IDC_EDIT1, strTemp);
LPCTSTR lp;
TCHAR tcTemp[20];
lp = strTemp.GetBuffer(strTemp.GetLength());
wcscpy(tcTemp, lp);
char param[50] = {};
wcstombs(param, tcTemp, 20);


挺简单的一段代码。有经验的码农很快就会看出来,这段代码的作用是用来把CString转为char数组内存储。

但是试一下strTemp = L"你好"看看?param里面会存储什么?

答案是空。

这是宽字节串到多字节串转换的基本要求,即必须指定字符集。

为此加入调用setlocale函数设置本地化环境的语句。

setlocale(LC_ALL, "");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: