经过几天的翻阅文档和实验,终于找到了比较好的解决办法。
可以不需要修改my.ini。
在建立数据库的时候,对库和表的字符集设置不太重要,但是对文本类型的字段最好都设置为GBK字符集。
对于已有的数据库可以用以下方法转换字段编码:
ALTER TABLE t MODIFY hoverfly BINARY(100);
ALTER TABLE t MODIFY hoverfly CHAR(100) CHARACTER SET gbk;
注意用此方法如果不修改程序,会发现查询出的结果都是乱码,可以通过在my.ini的[mysqld]段内加default-character-set=gbk来纠正。但是这样你会发现那些没有转换编码的文本字段里的中文都是乱码。
其实有更简单的办法,在进行查询前,只要执行SET character_set_results = NULL就可以。而且这是不管是转换了的还是没转换的字段都不会出现乱码。而转换了的字段可以正常的对中文进行排序。
odin_free 回复于:2004-11-15 09:49:23
不错 适合新人 保留
2bx 回复于:2004-12-08 17:11:18
楼主帮帮忙!!!
我用
SET character_set_results = NULL;
SELECT ……
得到的结果还是乱码,能否说的具体一点???谢谢
水若寒 回复于:2004-12-09 23:55:42
修改my.ini需要改哪里?
6789709 回复于:2005-02-25 08:48:26
SET character_set_results = GB2312
hardiwang 回复于:2005-02-25 09:37:26
在my.ini里
加入
default-character-set=gb2312
当然位置要放对了才可以
wangli2000_cn 回复于:2005-03-02 17:11:00
create database ......set charset=UTF-8
micht767 回复于:2005-03-15 12:28:24
good
yuelin 回复于:2005-03-25 13:23:33
困扰了1天,昨天看了台湾的一个哥们写的说明才基本搞定。
在my.ini中的两处加入,分别是[mysqld]和[*client]处
default-character-set=gb2312 ,reboot机器(重要)。
在网页中就可以访问了,注意使用可视工具的来维护mysql的,
可能由于不支持中文的编码,插入中文数据后,仍然是乱码。
使用命令行的应该可以了。 另外gb2312也可以改成其他的编码方式,只要和jsp页上的统一即可。
kytexzy 回复于:2005-04-23 14:56:08
我想问一下楼主的方法是不是需要在编译时加上支持charset=gb2312才有效,我直接安装的MySQL二进制代码能行吗?
:em03:
arbor 回复于:2006-04-12 14:10:08
可是我一个database里面有很多table,要一个一个的改啊?
ysixin 回复于:2006-11-21 16:19:57
我的办法是在每个mysql的query前,先query一个 "set names 'gbk' ",
由于自己用php封装了mysql 的操作 ,所以很方便
|