默认编码不一致造成问题
1、数据库创建编码选用一个如gb2312。
2、数据库字符集校对选用一个gb2312,以上两者必须一致。
3、不同编译器或者工具如notepad、vim、editplus,它们默认文件的编码不一致,保存的时候选择相应的字符集保存。
4、页面的环境不一样造成,html中的head中meta中的charset=gb2312即可。
5、浏览器的设置默认编码不一致,有的自动选择,有的默认gb2312,许多页面默认是utf8,造成乱码,php文件采用header('Content-Type: text/html; charset=gb2312');告诉浏览器文本类型是html和字符集是gb2312.,header前面不能有任何输出包括空格,此时可以不使用方法4.
综上所述,乱码的大部分原因。
最佳解决方案,网页字符集 与 数据库字符集相同。
如果你网页字符集与数据库字符集不一样,在输出或者保存时注意转换处理。
我不知道你写的mysql_query()是啥意思,一般我里面直接写的发送语句
里面最好是放个变量
e,g $a = 'select id,cat.....';
$b = mysql_query($a);
应该是数据库表或者是数据库表里面的字段的字符设置的不对,你都改成UTF8就可以了
数据库里显示的是问号还是乱码?还是正常的?
如果数据库是正常的,页面上显示错误,一定是字符集的问题。
表整理改为utf8_general_ci试试,然后把你的PHP输出页面的页面属性改为UTF-8试试,用DW可以改,DW创建的页面默认为GB2312的