mysql不支持中文查询 本帖最后由 long405581649 于 2013-06-08 18:47:22 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql> select version()+---------------------+| version() |+---------------------+| 5.0.45-community-nt |+---------------------+1 row in set (0.04 sec) http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 show variables like 'char%'; show create table xxx; MYSQL 的 UTF8默认设置你看一下是否和你的一致 这些都专门设置过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 | C:\Program Files (x86)\MySQL\MySQL Server 5.0\share\charsets\ |+--------------------------+---------------------------------------------------------------+8 rows in set (0.00 sec)mysql> show create table history20132;+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table|+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| history20132 | CREATE TABLE `history20132` ( `businessid` varchar(50) NOT NULL default '', `property` varchar(50) NOT NULL default '', `value` varchar(50) default NULL, `date` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`businessid`,`property`,`date`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 |+--------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.03 sec) 初始建表就是UTF8?没有插入记录后再修改字符集?我用命令访问mysql,为什么也非要set names uft8; 一下呢?简要说明一样,在MYSQL命令行下? mysql> show full fields from history20132;+------------+-------------+-----------------+------+-----+---------------------+-------+---------------------------------+---------+| Field | Type | Collation | Null | Key | Default| Extra | Privileges | Comment |+------------+-------------+-----------------+------+-----+---------------------+-------+---------------------------------+---------+| businessid | varchar(50) | utf8_general_ci | NO | PRI || | select,insert,update,references | || property | varchar(50) | utf8_general_ci | NO | PRI || | select,insert,update,references | || value | varchar(50) | utf8_general_ci | YES | | NULL| | select,insert,update,references | || date | datetime | NULL | NO | PRI | 0000-00-00 00:00:00| | select,insert,update,references | |+------------+-------------+-----------------+------+-----+---------------------+-------+---------------------------------+---------+4 rows in set (0.01 sec) String createSql = "CREATE TABLE `"+table+"` ("+ "`businessid` varchar(50) NOT NULL default '',"+ "`property` varchar(50) NOT NULL default '',"+ "`value` varchar(50) default NULL,"+ "`date` datetime NOT NULL default '0000-00-00 00:00:00',"+ "PRIMARY KEY (`businessid`,`property`,`date`)"+ ") ENGINE=InnoDB DEFAULT CHARSET=utf8";创建的时候就是utf8,创建后没有修改过。“我用命令访问mysql,为什么也非要set names uft8; 一下呢?”我的意思是,我用cmd,进入DOS下,mysql -u -p 进入mysql命令行下,我在查询的时候,如果查询条件如果是中文,必须先set names gbk 或 set names utf8, 不然是没有数据的,而且从 show variables like '%char%';可以看出,我的client、connection、result、server的字符集都是utf8, 我认为是可以的set name 'gbk'; 这条命令的作用是同时修改 character_set_client,character_set_connection,character_set_results所以不用这条命令也是可以的,但事实上不行,所以有此一问 mysql的备份与恢复,定期备份,增量备份,一般用什么工具啊?谢谢 请教MySQL中如何判断某一天是当月的第几周啊? 请问网站MYSQL数据库如何移植到其他服务器上? mysql 建表 怎么设定最小值 查询 用J_Space免费版修改的招聘网站(PHP+MYSQL) 急:使用mysql数据管理工具与mysql4.1.7连接,中文无法显示 关于gb2312.conf的问题 请问大家MYSQL中如何获取刚插入记录的主键(auto_increment)? 求最大值所对应的日期的sql语句 mysql 查询语句怎么写?
+---------------------+
| version() |
+---------------------+
| 5.0.45-community-nt |
+---------------------+
1 row in set (0.04 sec)
MySQL 中文显示乱码
show create table xxx;
你看一下是否和你的一致
这些都专门设置过
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 | C:\Program Files (x86)\MySQL\MySQL Server 5.0\share
\charsets\ |
+--------------------------+----------------------------------------------------
-----------+
8 rows in set (0.00 sec)mysql> show create table history20132;
+--------------+----------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
+
| Table | Create Table|
+--------------+----------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
+
| history20132 | CREATE TABLE `history20132` (
`businessid` varchar(50) NOT NULL default '',
`property` varchar(50) NOT NULL default '',
`value` varchar(50) default NULL,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`businessid`,`property`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+--------------+----------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
+
1 row in set (0.03 sec)
简要说明一样,在MYSQL命令行下?
+------------+-------------+-----------------+------+-----+---------------------
+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default
| Extra | Privileges | Comment |
+------------+-------------+-----------------+------+-----+---------------------
+-------+---------------------------------+---------+
| businessid | varchar(50) | utf8_general_ci | NO | PRI |
| | select,insert,update,references | |
| property | varchar(50) | utf8_general_ci | NO | PRI |
| | select,insert,update,references | |
| value | varchar(50) | utf8_general_ci | YES | | NULL
| | select,insert,update,references | |
| date | datetime | NULL | NO | PRI | 0000-00-00 00:00:00
| | select,insert,update,references | |
+------------+-------------+-----------------+------+-----+---------------------
+-------+---------------------------------+---------+
4 rows in set (0.01 sec)
"`businessid` varchar(50) NOT NULL default '',"+
"`property` varchar(50) NOT NULL default '',"+
"`value` varchar(50) default NULL,"+
"`date` datetime NOT NULL default '0000-00-00 00:00:00',"+
"PRIMARY KEY (`businessid`,`property`,`date`)"+
") ENGINE=InnoDB DEFAULT CHARSET=utf8";创建的时候就是utf8,创建后没有修改过。“我用命令访问mysql,为什么也非要set names uft8; 一下呢?”我的意思是,我用cmd,进入DOS下,mysql -u -p 进入mysql命令行下,我在查询的时候,如果查询条件如果是中文,必须先set names gbk 或 set names utf8, 不然是没有数据的,而且从 show variables like '%char%';可以看出,我的client、connection、result、server的字符集都是utf8, 我认为是可以的set name 'gbk';
这条命令的作用是同时修改 character_set_client,character_set_connection,character_set_results所以不用这条命令也是可以的,但事实上不行,所以有此一问