ado从sql里获取字符,字符中有中文的都丢失了,用strlen获取长度刚好是丢失中文后的长度,用char一个字节一个字节转%d>int判断,结果发现有63的数字,请问是什么问题...

解决方案 »

  1.   

    我用宽字符函数转换,也不行,主要是strlen压根就获取不到中文的长度..
      

  2.   

    strlen根本就不是为中文编码设计的……这个仅针对ANSI字符串。
    如果你要在数据库里保存中文的话,就不能用ANSI。你的数据库字段类型是什么?
      

  3.   

    但很奇怪,PowerBuilder却可以正确获取,vc+ado就无法获取...
      

  4.   

    adVarChar保存的那么用的不是等宽编码了,要判断字符串长度的话得用_mbclen之类的,但是这个要调用 setlocale,有全局影响。建议还是用nvarchar算了。