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

来源:互联网 发布:朱棣和宁王 知乎 编辑:程序博客网 时间:2024/06/10 19:02
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, "");

原创粉丝点击