我的mysql字符集设置如下:
mysql> show variables like '%char%';
+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | utf8                              |
| character_set_connection | utf8                              |
| character_set_database   | utf8                              |
| character_set_filesystem | binary                            |
| character_set_results    | utf8                              |
| character_set_server     | utf8                              |
| character_set_system     | utf8                              |
| character_sets_dir       | D:\Develope\MYSQL\share\charsets\ |
+--------------------------+-----------------------------------+
8 rows in set程序使用的unicode的环境 strSql= "select   *   from   user_manage "; 
 bstrSQL   =   strSql.AllocSysString();   
recordPtr-> Open(bstrSQL,(IDispatch*)conPtr,adOpenDynamic,adLockOptimistic,adCmdText);   
CString strName=(LPCTSTR)(_bstr_t)(recordPtr->GetCollect(_variant_t("username")));这里的strName在显示英文的时候是正确的
当显示韩文的时候是一些“??????”
如果我在这里设置set names GBK
可以读出中文,但韩文等怎么办呢?

解决方案 »

  1.   

    韩文之类的必须用unicode的字符集,
    _bstr_t类中的字符类型是不是Unicode
      

  2.   

    对MYSQL使用ADO现在我都要失望透了
    不能动态创建表,列头参数集为空...
    ADO自己都不能正确的转换UTF8的字符,当奇数个宽字符出现的时候,utf8的最后一个byte一直是63,太失望............................就连access都支持真正的UNICODE---utf16.可惜access网络实用性不强
      

  3.   

    还是用mysql c++ connector吧