我的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
可以读出中文,但韩文等怎么办呢?
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
可以读出中文,但韩文等怎么办呢?
_bstr_t类中的字符类型是不是Unicode
不能动态创建表,列头参数集为空...
ADO自己都不能正确的转换UTF8的字符,当奇数个宽字符出现的时候,utf8的最后一个byte一直是63,太失望............................就连access都支持真正的UNICODE---utf16.可惜access网络实用性不强