1)我用的php框架开发的web程序,编码是“zh”,“utf-8”。
2)我用的mysql数据库编码是“utf8_general_ci”
3)我用vc的ATL开发的一个com(dll)组件。注册在服务器端。函数如下:
    STDMETHODIMP COperationDB::ConnexionDB(BSTR IHost, BSTR IUser, BSTR IPassword, unsigned short IPort)
    STDMETHODIMP COperationDB::ConnexionDataBases(BSTR DBName)
    STDMETHODIMP COperationDB::ExecuteDB(BSTR ISQL)
   {
                .......
                   USES_CONVERSION;
CComBSTR bstr;
bstr=ISQL;
//CComBSTR bstr;
TCHAR buffer[512];
wsprintf(buffer,_T("%s"),OLE2A(bstr));
mysql_query(myData,buffer);
if(mysql_errno(myData)==0)
{
wsprintf(szBuffer,_T("操作成功"));
}
else
wsprintf(szBuffer,_T("%ld"),"sql语句错误");
               }
4)在php的页面里,调用了该组件来对操作mysql数据库。大致如下:
      $obj=new COM("SynchroData.OperationDB");
   $obj->ConnexionDB("localhost","root","root",3306);//连接数据库服务器
 $obj->ConnexionDataBases("testb");//连接数据库
 $obj->ExecuteDB("insert into  customer (name,pass,phone) values ('迪斯科发','夺魁夫君','a')");//对数据库执行操作这样,当我执行后。看mysql数据库就是这样:
µÏ˹¿Æ·¢    ¶á¿ý·ò¾ý     a 
就这样的乱码
我用上面地址方法转换还是这样。。
我不知道哪里错了。。是不是函数类型应该是指针或者是其他原因
哪个高手能具体说说吗?真的
非常感谢。。