我用vc6.0 编程 . 链接ODBC 操作 SQL SERVER 2008 ,工程项目我选了_UNICODE , 问题是, 我把一串字符串 (例如: L"测试用例"  insert into 我的数据库表, 但不知道为什么, 字符串自动转换成另一种编码,应该是GBK ,然后我把字符串读出来,编码就不再是unicode, 所以,无办法在_UNICODE 下的 EDIT 控件正常显示, 怎么禁止SQL SERVER 驱动进行 这种转换? 我已经加了 N ( values(N‘测试用例') 但还是自动转换了有什么解决办法

解决方案 »

  1.   

    存储的时候直接用NVARCHAR就解决问题了
      

  2.   

    用NVARCHAR试一下,如果不行,查看数据的排序规则是不是Chinese_PRC_CI_AS
      

  3.   

    我用了 nvarchar ,但还是一样~
      

  4.   

    修改排序规则为Chinese_PRC_CI_AS
      

  5.   

    把你的数据表的字段类型改成NVARCHAR试试
      

  6.   

    在数据库里看是正确的,读出来我查看内存,编码不是unicode ,自动转换了
      

  7.   

    是不是你程序的问题,不太懂vc,应该有编码设置,gb2312什么的。
      

  8.   

    我觉得是 window的 odbc 或者 是SQL SERVER 的 驱动 问题, 它自动转换了
      

  9.   

    VC系统文件编码应该也要改的吧?
    windows下默认是SJIS
      

  10.   

    vc下面完全不用管啊,项目的属性页里面 字符集选择 使用 Unicode 字符集
    然后所有的字符串都用_T("字符串")这样的表示方式
    就都是Unicode了
    读的时候
    CString aa=(LPCTSTR)(_bstr_t)(m_pRecordset->GetCollect(_T("aa")));
      

  11.   

    vSQL= _T("UPDATE t1 SET 日期 ='") +Date+"'";
    更新的时候用这样的方式就可以了
    Date是CString型变量