网上找了一个转换 字符串的方法
string GBKToUTF8(std::string& strGBK)
{
string strOutUTF8 = "";
wchar_t * str1;
int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
str1 = new WCHAR[n];
MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n);
n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
char * str2 = new char[n];
WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);
strOutUTF8 = str2;
delete[]str1;
str1 = NULL;
delete[]str2;
str2 = NULL;
return strOutUTF8;
}
在提交到数据库操作时用这个方法转换一下就可保存成中文了
void insert()
{
otl_stream
o(50, "insert into test_tab values(:f1<int>,:f2<char[31]>)",
db );
char tmp[32];
string tt="姓名bhgy765_+00";
string ts=GBKToUTF8(tt);
strcpy(tmp,ts.c_str());
o<<1<<tmp;
}