mysql无法显示中文数据,不是乱码

xiezhifu 2009-08-03 10:39:43
我使用的是mysql5.1版本的,编码设置为GBK,在查询数据时,中文的数据没有显示。

效果如下示:(realname字段中的数据为中文)
mysql> select * from player_info;
+----------+----------+----------+
| username | password | realname |
+----------+----------+----------+
| user | user | |
+----------+----------+----------+
1 row in set (0.00 sec)

字段realname输入的是中文数据,可是就是看不到数据,问下谁知道是什么原因?

表的描述:
mysql> describe player_info;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| username | varchar(20) | NO | PRI | NULL | |
| password | varchar(20) | NO | | NULL | |
| realname | varchar(20) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

数据库编码设置:
mysql> show variables like 'char%';
+--------------------------+-------------------------------------------+
| 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 | D:\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+-------------------------------------------+
8 rows in set (0.00 sec)

不知道谁能给小弟解答到底是何原因造成的?
...全文
246 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiezhifu 2009-08-04
  • 打赏
  • 举报
回复
应该是mysql程序问题,我重新下载了另一个安装程序,结果可以正常显示了。
code_killer 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiezhifu 的回复:]
开始我是怀疑数据库编码的问题,然后我修改了数据库的编码,看不出问题,后来我也怀疑终端编码问题,可是终端的编码是GBK的能显示中文,然后我又从终端直接插入数据,显示的结果还是一样,使用查询语句,条件为中文数据是可以查询得出来的。就是结果不能显示中文。
数据库的编码我把能显示中文的编码都换过了,显示结果都是一样。数据库的编码肯定没有问题的了。
[/Quote]

应该是终端的问题,跟数据库Server无关。
楼主可以用MySQL的图形客户端试一下,如phpAdmin等。
xiezhifu 2009-08-04
  • 打赏
  • 举报
回复
开始我是怀疑数据库编码的问题,然后我修改了数据库的编码,看不出问题,后来我也怀疑终端编码问题,可是终端的编码是GBK的能显示中文,然后我又从终端直接插入数据,显示的结果还是一样,使用查询语句,条件为中文数据是可以查询得出来的。就是结果不能显示中文。
数据库的编码我把能显示中文的编码都换过了,显示结果都是一样。数据库的编码肯定没有问题的了。
vinsonshen 2009-08-04
  • 打赏
  • 举报
回复
如果都像你上面说的那样的话,那应该没问题啊
很怀疑你的访问终端编码不是GBK
要不你试下直接在访问终端新插入一些新记录看看效果
xiezhifu 2009-08-04
  • 打赏
  • 举报
回复
+-------------+-----------------------------------------------------
--------------------------------------------------------------------
-----------------------------------------------------+
| Table | Create Table

|
+-------------+-----------------------------------------------------
--------------------------------------------------------------------
-----------------------------------------------------+
| player_info | CREATE TABLE `player_info` (
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`realname` varchar(20) NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
+-------------+-----------------------------------------------------
--------------------------------------------------------------------
-----------------------------------------------------+
1 row in set (0.09 sec)
vinsonshen 2009-08-04
  • 打赏
  • 举报
回复
show create table player_info 


看看
xiezhifu 2009-08-04
  • 打赏
  • 举报
回复
访问终端的编码也是GBK
vinsonshen 2009-08-04
  • 打赏
  • 举报
回复
上面的打错了:

确定你的访问终端的编码也是GBK即可(若可修改你访问终端的编码)
若你不可修改你的访问终端的编码,则得在访问连接里执行: set names '你的访问终端的编码'
vinsonshen 2009-08-04
  • 打赏
  • 举报
回复
确定你的访问终端的编码也是GBK即可(若可修改你访问终端的编码)
若你不知道你访问终端的编码,则得执行: set names '你的访问终端的编码'

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧