请回答
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 )
...
}
谢谢.
try:
WideCharToMultiByte
MultiByteToWideChar
customize the html head to set charset as utf-8
use WideCharToMultiByte convert to utf-8 string,
*pCtxt<<"<html><head>\n";
*pCtxt<<"<meta HTTP-EQUIV=\"content-type\" CONTENT=\"text/html; charset=UTF-8\">";
*pCtxt<<"</head><body>";
_bstr_t bstrvalue = (_bstr_t) pRst->Fields->Item["nchardata"]->Value;
char* buf=(new char[bstrvalue.length()*3]);
ZeroMemory(buf,bstrvalue.length()*3);
int nret=WideCharToMultiByte(CP_UTF8,0,(LPCWSTR)bstrvalue,bstrvalue.length(),buf,bstrvalue.length()*3,NULL,
FALSE);
//*pCtxt << "nchar field data:"<<(char*) ((_bstr_t) pRst->Fields->Item["nchardata"]->Value);
*pCtxt<<buf;
*pCtxt<<"<BR>";
pRst->MoveNext();
delete[] buf;