数据库是utf-8编码在ODBC里设置 SET NAMES GBK ,当遇到有些繁体字时就无法写入提示是You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ....设置 SET NAMES utf8 当然也不行,直接提示Incorrect string value: "\x96|\xB1\xB1\xEB\x8A..." for column "CN_SEC_ABNM_TC" at row 1
难道要在程序里把字符都编码成utf-8才能写吗?现在不想改程序,有什么简单的方法解决?

解决方案 »

  1.   

    有没有办法在不改程序和不改数据库字符集的前提下,只设置一些配置,比如数据库的connection
    就可以解决?
      

  2.   

    你的是繁体跟简体一块的?那只能是unicode
      

  3.   

    是的,繁体与简体混合的我用ADO 试了一下:spRst->Open("tt1",(IDispatch *)pMyConnect,ADODB::adOpenDynamic,ADODB::adLockOptimistic,ADODB::adCmdTable);_bstr_t bsValue = L"中海集運";
    spRst->AddNew();
    spRst->Fields->GetItem("f1")->Value = bsValue;
    spRst->Update();
    spRst->Close();pMyConnect 是用ODBC建立的,set names gbk
    这样也不行但
    _bstr_t bsSql = "insert into tt1 values('中海集運')";
    pMyConnect->Execute(bsSql,NULL,ADODB::adCmdText);倒是可以怎么可以让第一种方法也可以?