首先,我确认机子是配置都是 UTF8 的字符编码。
可以用show variables like 'char%' 来查询。
mysql> show variables like 'char%';+--------------------------+----------------
| Variable_name | Value
+--------------------------+----------------
| character_set_client | gbk
| character_set_connection | gbk
| character_set_database | latin1
| character_set_filesystem | binary
| character_set_results | gbk
| character_set_server | latin1
| character_set_system | utf8
| character_sets_dir | C:/Program File
+--------------------------+----------------
8 rows in set (0.00 sec)
mysql>
然后再程序中读取的时候中文总是乱码。网上各种方法试用过了。
mysql_init(&m_connMysql);
mysql_set_character_set(&m_connMysql, "gbk"); //gbk utf8
这里有个问题,我数据库是utf8 格式的,结果改成 gbk 居然可以读出中文了。。。
反而如果是utf8 依然是乱码。 我也不明白为什么,先写到这里吧。希望有人能告诉下答案。