麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
关于MySQL的乱码问题!!!看了这个你还乱码。就不要来找我!!
悬赏分:20 - 2007年08月22日

[php]
<?php

首先声明。发现任何地方都有人问这个编码问题。

我总结一下,要想不乱码。就一句话:保证你的字符在任何地方的编码都统一。

那么这里的任何地方有哪些呢

1,字符串本身编码。
2,Form表单提交的过来的字符串的编码
3,数据库服务器的默认编码
4,mysql客户端的编码
5,执行SQL语句时。传输编码
6,页面显示式的编码

1,字符串本身编码,如你的php文件中的变量名。这可要看文件的保存格式
2,form表单提交的。这个要看那个form表单叶面的Charset.如果是gb2312.那么提交过来的编码就是gb2312编码
大家可以再http://www.baidu.com的叶面测试。默认的Character Encoding是GB2312.所以如果你提交一个汉字,比如中国的 '中' 字。提交。可以看到编码为 %D6%D0 。返回首页。强制性将叶面的编码改为UTF-8。不管叶面乱码。重新输入
中 。再提交。看到变为 %E4%B8%AD。这也可以靠到汉字再UTF-8时站三个字节的

3,数据库服务器的默认编码
4,mysql客户端的编码
5,执行SQL语句时。传输编码
这三条可以在mysql -uroot -p命令后 反斜杠s,在我的机器上可以看到
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
这里面也涉及到数据表里面字段的编码,这个我就不多讲了,只是 注意第5条,我们一般在php文件使用 SET NAMES UTF8来保证。应为有时候虚拟机的数据库的默认传输编码是不能保证默认和你想象的一样

6,页面显示式的编码
最后一条那就是的页面的显示编码。也就是我们常说的apache conf文件里面的AddDefaultCharset UTF-8
还有php里面的header('Content-Type: Charset=UTF-8');还有html里面的




所以如果你保证上面所有的编码都一致的话。如果还看见乱码的话。我也没办法救你了

另外。建议大家全部使用utf-8。不要再使用什么gb2312.gbk了。


最后忘了说:我们有时候在dos下面 mysql -uroot -p这里的编码还设计到系统及dos命令行本身的编码 比如你再dos下chcp 936等

?>
[/php]


欢迎楼下跟贴。指正。

[ 本帖最后由 wzhu 于 2007-7-5 05:04 PM 编辑 ]

提问者:wzhu   08-22 16:04
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
17 + 63 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM