求解:Mysql使用utf8字符集插入中文乱码
之前的服务器上用的mysql-5.1.12一直使用latin1来存储,没有出现问题
新安装的mysql服务器使用utf8字符集,反倒无法存储中文了,特来求教。
mysql版本:5.1.28
my.cnf里配置:
[mysql]
default-character-set = utf8
[mysqld]
default-character-set = utf8
mysql环境下:
mysql> show variables like 'character_set%';
+--------------------------+----------------------------------------+
| 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 | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
mysql> show variables like 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
mysql连接后使用insert插入中文,select出来都为空;然后尝试在C程序中使用libmysqlclient库进行插入,插入中得到的结果是乱码;
尝试加入执行mysql_query(&m_connection, "set names utf8"), 唯一的变化就是之前的乱码变成另一种形式的乱码。。。。
不明白为啥utf8环境下中文都无法插入,搜索了很久也没找到解决办法,盼各位赐教