ADO MSSQL的UTF8乱码有关问题

ADO MSSQL的UTF8乱码问题
"Driver=SQL Server;Server=localhost;Database=;UID=;PWD=;CharacterSet=UTF-8"
在连接串加这个CharacterSet=UTF-8还是乱码ADO MSSQL的UTF8乱码有关问题
调用的是存储结构写入用户的名字,求助啊啊啊ADO MSSQL的UTF8乱码有关问题

注:因为Unicode有些字符不能显示,所以不使用UTF-8转Unicode后再写入
------解决思路----------------------
把那个用户的名字人字段用二进制保存,二进制存,二进制写
------解决思路----------------------
引用:
Quote: 引用:

把那个用户的名字人字段用二进制保存,二进制存,二进制写


其实我比较好奇的是,UTF8转unicode为什么会乱码。。。

贴代码
------解决思路----------------------
试试用C库函数mbstows转换呢。
------解决思路----------------------
知道你想干什么了,怪不得名字看起来这么熟悉,点通好久不去了.
首先这样创建一个表

CREATE TABLE [dbo].[Test] (
[id] [int] IDENTITY (1, 1) NOT NULL PRIMARY KEY,
[Name] [varbinary] (50) NOT NULL ,
[Addr] [varbinary] (50) NOT NULL 
)


插入数据

char szUtf8Name[] = {0xE5, 0xBC, 0xA0, 0xE4, 0xB8, 0x89, 0x00}; //张三
char szUtf8Addr[] = {0xe4, 0xb8, 0xad, 0xe5, 0x9b, 0xbd, 0x00}; //中国
CHAR szSql[1024];

sprintf_s(szSql, _countof(szSql), "INSERT INTO Test (Name, Addr) VALUES (CONVERT(VARBINARY(1000),'%s'), CONVERT(VARBINARY(1000),'%s'))", szUtf8Name, szUtf8Addr);
Conn->Execute(szSql, NULL, adCmdText);


查询数据

char szName[16], szAddr[32];

try
{
Conn.CreateInstance(__uuidof(Connection));
Rst.CreateInstance(__uuidof(Recordset));

Rst = Conn->Execute(TEXT("SELECT Name,Addr FROM Test"), NULL, adCmdText);
while(!Rst->adoEof)
{
memset(szName, 0, sizeof(szName));
memset(szAddr, 0, sizeof(szAddr));

memcpy(szName, Rst->Collect[(long)0].parray->pvData, Rst->Collect[(long)0].parray->rgsabound->cElements);
memcpy(szAddr, Rst->Collect[(long)1].parray->pvData, Rst->Collect[(long)1].parray->rgsabound->cElements);
Rst->MoveNext();
}
}catch(_com_error &e)
{
MessageBox(e.Description(), e.ErrorMessage());
}

------解决思路----------------------
引用:
就是直接存,再直接读

就的,直接用2进制字段直接存取。
不用转换编码