请教,VS2017读取oracle中文乱码的问题。

yyyqcl 2019-01-25 04:06:17
oracle编码格式是AL32UTF8,vs2017读取部分:

_variant_t n = m_pRs->GetCollect((_variant_t)strCol);

if(n.vt == VT_NULL || n.vt == VT_EMPTY)
continue;

if(n.vt & VT_ARRAY)
{
COleSafeArray oleAry(n);
void* pData;
oleAry.AccessData(&pData);
int nSize = oleAry.GetOneDimSize();

oleAry.UnaccessData();
}
else if (n.vt & VT_DATE)
{
CString strVal = COleDateTime(n).Format();
mapItem.SetAt(strCol, strVal);
}
else if(n.vt & VT_BSTR)
{
// 这里读取strVal是乱码
CString strVal = n.bstrVal;
//本来以为可以把utf8转为gb形式,转换后,tmp还是为乱码。。
CStringA tmp = UTF8ToGB(_com_util::ConvertBSTRToString(n.bstrVal));
}


最后的读取的中文都是???,请问这是什么原因?
...全文
106 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyyqcl 2019-01-25
  • 打赏
  • 举报
回复
VS2017 编译的是xp下的程序,
平台工具集: windows xp(V141_xp)
字符集: unicode字符集

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧