【求助】10.04 Mysql无法显示中文(已解决)

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
bwilling
帖子: 138
注册时间: 2009-03-28 10:37

【求助】10.04 Mysql无法显示中文(已解决)

#1

帖子 bwilling » 2010-06-02 17:00

我已经弄了好长时间了,但就是无法显示中文,特来求救
下面是截图:

图片

图片

我查找出来的字总是问号,没有乱码,郁闷至极。。。

望高人指教。


我终于知道自己怎么错了,设置都没问题。问题的关键在于我在我在修改了mysql的编码后,却还在原来编码下创建的数据库里插入查询数据。作为已经存在的数据库,它的编码是没有改变的。所以不管你怎么插入数据,怎么查询数据,再怎么配置 mysql.cnf 都是没用的。最简单的方法,配置好mysql.cnf 后,重新建立一个数据库,重新建表,再插入数据,然后就能显示中文了。

如果,你想修改已经存在的数据库和表命令如下:

1. 修改 MySQL 数据库默认字符集(mysql database default character set)

alter database testdb default character set = gb2312;

2. 修改 MySQL 数据表默认字符集(mysql table default character set)

alter table ip_to_country default character set = gb2312;

注意:修改 MySQL 的默认字符集,不管是在数据库级别,还是数据表级别,对已经存储的字符数据无任何改变。只是新增的表或列,开始使用新的字符集。
3. 转换 MySQL 数据表字符集(mysql table character set)

MySQL 中有一个数据表 ip_to_country,以前该表字符列数据都是以 utf8 编码格式存放的,现在想转换为 gb2312 编码格式存放。需要使用 MySQL 转换字符集命令:convert to character set

alter table ip_to_country convert to character set gb2312;

提示:convert to 也会把数据表 ip_to_country 的默认字符集从 utf8 更改为 gb2312。
4. 转换 MySQL 数据表中某个列的字符集(mysql column character set)

alter table ip_to_country modify country_name varchar(50) character set gb2312;

这个语句把单独一个列 country_name 的字符集转换为 gb2312。这在用法在实际中比较少见,因为大多数情况下,都是改变整个表的字符集。

原帖地址:http://www.sqlstudy.com/sql_article.php?id=2008082102
上次由 bwilling 在 2010-06-03 11:01,总共编辑 1 次。
为天地立心,为生民立命,为往圣继绝学,为万世开太平
bwilling
帖子: 138
注册时间: 2009-03-28 10:37

Re: 【求助】10.04 Mysql无法显示中文

#2

帖子 bwilling » 2010-06-03 9:48

怎么了,显示不出来吗?

我看着没问题阿。
为天地立心,为生民立命,为往圣继绝学,为万世开太平
回复