首页 > 学技术 > 技术网文 > MySQL > 正文

[保留] 关于Mysql 4.1语言问题的完美解决方法


来源 chinaunix.net 酷勤网整理

经过几天的翻阅文档和实验,终于找到了比较好的解决办法。
可以不需要修改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 的操作 ,所以很方便




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=444009

收藏到: