当前位置: 技术问答>linux和unix
Linux下访问MYSQL数据库中数据时出现乱码问题
来源: 互联网 发布时间:2017-02-12
本文导语: 在Ubuntu10.04系统下,我用C语言写了一个程序查询my_database数据库中Student表中的数据:char * query = "select * from Student";然后输出到终端下或者直接读到一个文本中,但是在显示中文时是乱码(显示的是?号)!MYSQL数据库...
在Ubuntu10.04系统下,我用C语言写了一个程序查询my_database数据库中Student表中的数据:char * query = "select * from Student";然后输出到终端下或者直接读到一个文本中,但是在显示中文时是乱码(显示的是?号)!MYSQL数据库的配置文件my.cnf中我已经设置了MYSQL的各种编码方式为UTF-8:
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/share/mysql/charsets/ |
+--------------------------+----------------------------+
而且建立Student表时各个字段选择的编码方式也都是UTF-8,在终端下用mysql命令方式访问Student表中的数据时,显示正常,没有出现乱码,但是用C语言写的程序输出到终端或者文本中时,却是乱码,而且终端或者本文的编码方式就是UTF-8!不应该出现乱码啊!求解!
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/share/mysql/charsets/ |
+--------------------------+----------------------------+
而且建立Student表时各个字段选择的编码方式也都是UTF-8,在终端下用mysql命令方式访问Student表中的数据时,显示正常,没有出现乱码,但是用C语言写的程序输出到终端或者文本中时,却是乱码,而且终端或者本文的编码方式就是UTF-8!不应该出现乱码啊!求解!
|
生成的文件,可以使用file 命令查看一下,看看是什么格式
|
mysql_set_character_set 这个函数是用来设置当前连接的字符集
与服务器的字符集应该没有直接关系
与服务器的字符集应该没有直接关系