W2A_CP()宏转换

来源:互联网 发布:学淘宝运营要多长时间 编辑:程序博客网 时间:2024/06/05 16:52
#include <atlbase.h>

代码如下:

//使用ATL的W2A和A2W宏必须使用USES_CONVERSION
USES_CONVERSION;
 
//Unicode字符串
wchar_t* wszText=L"1.Unicode字符转换为ANSI;";
printf("%s\n",W2A(wszText));
 
//wprintf输出非英文字符,需要设置当前的地域信息
setlocale(LC_ALL,"chs");
 
//ANSI字符串(ANSI:American National Standards Institute)
//中文内码MBCSMulti-Byte character sets,英文内码SBCSSingle-Byte character sets)
char* szText="2.ANSI字符转换成Unicode.";
wprintf(L"%s\n",A2W(szText));


、针对sqlite3中文存储问题,sqlite3中采用utf8格式,因此在CString与char*转换的时候采用A2W_CP和 W2A_CP,而不是A2W和W2A。

比如:

m_datalist.InsertItem(nCount,_T(“序号”));

m_datalist.SetItemText(nCount, 1, A2W_CP((char*)sqlite3_column_text(stmt, 0),CP_UTF8));

m_datalist.SetItemText(nCount, 2, A2W_CP((char*)sqlite3_column_text(stmt, 1),CP_UTF8));

m_datalist.SetItemText(nCount, 3, A2W_CP((char*)sqlite3_column_text(stmt, 2),CP_UTF8));


 

0 0
原创粉丝点击