我的mysql数据库昨天的所有信息都还好的呢,什么操作也没干。今天汉字就成乱码了,这是什么原因阿?并且字符集高手们快帮帮忙吧。网上说的改正的信息我也改过了阿。
[mysqld]
#设定默认字符集为gbk
default-character-set=gbk
#设定连接mysql数据库时使用gbk,以让mysql数据库为gbk运行
init_connect='SET NAMES gbk'
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
lower_case_table_names=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
#终端字符集,告诉Server客户端提交的SQL语句的编码格式
default-character-set=gbk
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
[mysqld]
#设定默认字符集为gbk
default-character-set=gbk
#设定连接mysql数据库时使用gbk,以让mysql数据库为gbk运行
init_connect='SET NAMES gbk'
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
lower_case_table_names=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
#终端字符集,告诉Server客户端提交的SQL语句的编码格式
default-character-set=gbk
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql_query('SET @@character_set_results = "'.$program_char.'"',$conn); 显示中文字也是乱码。
$conn = mysql_connect("127.0.0.1", "test", "0000") or
die("Could not connect: " . mysql_error());$program_char = "utf8";mysql_query('SET @@character_set_results = "'.$program_char.'"',$conn);
mysql_select_db("test");
$charset = mysql_client_encoding($conn);printf ("current character set is %s \n", $charset);