您的位置:首页 > 数据库 > MySQL

mysql_4.1/5乱码问题

2006-08-14 13:21 267 查看
ashchen (輝輝)

2005-12-13 11:59:52 在 Web 开发 / PHP 提问

网页编码是gb2312(如果网页编码是utf-8,php部分可以改成相应的)
【1】命令行,就是Mysql.exe
修改my.ini,
[mysql]
default-character-set=gb2312
(转贴请注明作者)
【2】php->mysql
1 可以修改my.ini的情况下,在[mysqld]添加或修改
init-connect='SET NAMES gb2312'
2 不能修改my.ini
可以在php connect mysql后执行mysql_query('SET NAMES gb2312;');

utf-8编码的文件要比gb2312大,如果网页只有简体中文,只面对国内,没必要转成utf-8
如果网站是多语言,可以考虑utf-8

mysql 4.1版本之后引入多字符编码,我的理解是不论数据库里采用那种编码,只要存入和取出的时候设置的编码相同就不会出现乱码。mysql增加了转码,就是你存入utf-8编码,取出的时候只要告诉mysql你要得到那种编码它就返回正确的结果
如果default-character-set=gb2312 那么就不能存utf8编码的字符,但它的好处是省空间,对数据量大的有用
默认编码是latin1编码,跟gb2312类似,无法插入utf-8编码字符,会提示Data too long for column 'xx' at row
所以网页要采用utf-8编码,数据库也要采用,utf-8编码的网页提交的数据也是utf-8的。
采用latin1或者gb2312,gbk的,只要告诉mysql它你想要的编码就能得到正果
语句就是
SET NAMES xxx;
SET CHARACTER_SET xxx;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: