txt中的中文用c程序写入到Mysql中出现乱码。mysql的情况:mysql> show variables like '%character%';
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | gbk                                    |
| character_set_connection | gbk                                    |
| character_set_database   | gb2312                                 |
| character_set_filesystem | binary                                 |
| character_set_results    | gbk                                    |
| character_set_server     | gbk                                    |
| character_set_system     | utf8                                   |
| character_sets_dir       | /opt/freesvr/sql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)
[root@vm1 test]# cat /etc/my.cnf
[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock
default-character-set=gbk
# Here follows entries for some specific programs[mysql]default-character-set=gbk
# The MySQL server
[mysqld]
default-character-set=gbk
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
long_query_time = 0
default-character-set=gbk
max_connections=1000
skip-name-resolve
#log-bin 
请问下这是什么原因的?非常感谢哈,困扰我好久了!!!

解决方案 »

  1.   

    C连接数据库的时候先执行一下 set names 'gbk';
      

  2.   

    还有什么其他的解决办法么?多谢多谢了,mysql在Linux上面!!!
      

  3.   

    mysql> show variables like '%character%';
    +--------------------------+----------------------------------------+
    | Variable_name            | Value                                  |
    +--------------------------+----------------------------------------+
    | character_set_client     | gbk                                    | 
    | character_set_connection | gbk                                    | 
    | character_set_database   | gbk                                    | 
    | character_set_filesystem | binary                                 | 
    | character_set_results    | gbk                                    | 
    | character_set_server     | gbk                                    | 
    | character_set_system     | utf8                                   | 
    | character_sets_dir       | /opt/freesvr/sql/share/mysql/charsets/ | 
    +--------------------------+----------------------------------------+
    意思是说把这里面的除最后一项全部设置为  gbk么
      

  4.   

    http://blog.csdn.net/ACMAIN_CHM/article/details/4174186
      

  5.   

    建表时,也要设置字符集才行create table xxx
    (
    .....
    ) charaterset = gbk;