操作系统: Ubuntu 12.10
我用C语言访问MySQL数据库,从文件中读内容,插入到MySQL数据库中。
MySQL服务端: 现在已经都设置成了UTF-8编码。
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       | /usr/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客户端仍为乱码?sqlyog和mysql query browser都出现乱码,如下:
'1', '000036137344', '云南大理机场航站楼内部装修装饰工程',
跪求朋友们帮忙,谢谢!

解决方案 »

  1.   

    库、表一直是UTF8?
    在C中转换一下插入内容为UTF8试试
      

  2.   


    插入的内容原本就是UTF-8格式的,数据库和表之前是latin1的,我修改了/etc/mysql/my.cnf配置文件,使其默认为UTF-8。
    但客户端访问仍然是乱码。
      

  3.   

     为何要设置为gbk呢,数据本身就是UTF-8格式的。
      

  4.   

    看错了表、库重新设置utf-8编码
    set names 'utf-8';
      

  5.   

    在MYSQL中检查记录内容是否正常