请回答
http://expert.csdn.net/Expert/topic/1690/1690245.xml?temp=.3285944
这个问题.
并且请不要这里回答
这里留做为能提供有帮助回复者送分表示感谢.
原问题
----------------------------------------------------------
我使用VC读取SQL Server中NCHAR字段,
这个字段中存放了unicode类型的字符串
可是我不能定义_UNICODE,因为我使用ISAPI
ISAPI不支持unicode
我如何做才能把读到的数据转换成unicode的字符串并输出?
(使用MBCS会乱码)
m_pRecordset->Open("SELECT * FROM users",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
_variant_t vName;
int i=0;
while(!m_pRecordset->adoEOF)
{
i++;
vName = m_pRecordset->GetCollect("name");
*pCtxt << _T((_bstr_t)vName )
...
}
谢谢.
你不要把分给他一个人啊,也要给我一点啊,我也解答了,只是我前两天忙而已啊。
原因就是ISAPI返回的数据不能是ANSI格式,也不能是Unicode格式,而应该是UTF8格式。
我的代码如下。
while(!m_pRecordset->adoEOF)
{
i++;
CComBSTR sResponse = m_pRecordset->GetCollect("name");
DWORD lSize =sResponse.Length(); // wcslen(a);
char* pBuf =new char[1000];
DWORD dwSize = ::WideCharToMultiByte(CP_UTF8,0,sResponse.Detach(),lSize, pBuf,1000,0,0);
pBuf[dwSize]=0;
*pCtxt << _T(pBuf )
...
}