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));
}
最后的讀取的中文都是???,請問這是什么原因?
uj5u.com熱心網友回復:
VS2017 編譯的是xp下的程式,平臺工具集: windows xp(V141_xp)
字符集: unicode字符集
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/55907.html
標籤:數據庫
上一篇:BIN轉換為CFG檔案
