乱码............................急!!! 近两天偶在学习用PHP开发“用户管理系统”,但是在页面制作完成测试时出现了问题,表现在:在“找回密码”的测试过程中,在下面这步出现了乱码,如图: 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的PHP程序本身就已经损坏了,看看你是否把GBK存为ASCII了 现在打开这个乱码的文件,如果还能看到中文,那就另存为gbk或utf-8格式,然后在HTML <head>标签里声明页面的编码。<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>或GBK:<meta http-equiv="Content-Type" content="text/html; charset=gbk"/> 因为你以单字节编码ASCII来保存中文,所以你会发现中文怎么都成了问号。还是我之前说的,打开你的程序文件,看看还能否看到中文,如果能,就保存为多字节编码,例如GBK,UTF-8如果是问号,那么就只能重新写了。 当从数据库读取的内容大多数被显示成问号时多半的原因是字段的连接校对是默认的 latin1,但却以 utf8 编码操作 共有三个一致:1.php页面2.从数据库读的数据3.保存时的编码三者必须一致 你在 phpmyadmin 中看一下是否是乱码如果不是,那贴出查询出来的内容比如出啊熏出来的在 $row['xxx'] 中那么 echo base64_encode($row['xxx']); 贴出结果如果也是乱码,那么多半无解。不过也可像上面那样做一下,看看是否有希望 这是我在phpmyadmin里面查看到的信息,question与answer两处显示的都是乱码,其他都正常! unpack('H*', 读出来的字符串);贴一下这个结果我看看 这个乱码是latin1在utf-8环境下的表现因此你可以在读取问题的代码前,加一句 mysql_query('set names latin1');然后网页的呈现还是UTF-8编码 你先试一下其他人说的方法是否可行,因为那些毕竟简单些unpack是php的函数,要自己写 修改从数据库读取问题的那段代码:// 你的代码// mysql_connect();// mysql_select_db();// 加入这一句mysql_query('set names latin1');// 你的代码// $result = mysql_query('select * from ....');// $row = mysql_fetch_assoc($result);然后如果还是乱码的话,就需要检查一下网页<meta>标签里声明的是不是UTF-8了,如果不是,改成UTF-8至于为什么要加这句,因为你的数据在录入的时候被转换为了latin1编码存储 关于STR REPLACE 不能替换多个字符的问题 求解 求一正则 jquery 关于php urldecode 乱码的问题 discuz中那个文件对sso.php传过来的url后缀的时间进行判断? 一个加密解密的问题。 关于404的问题? 数据库查询问题 想在服务器端动态生成图片,一般的虚拟主机支持这个功能么? php之horde应用设置问题求解 select的搜索规则。PHP和SQl这么写无效,请问问题在哪? php中xpath要安装哪个插件???
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
或GBK:
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
还是我之前说的,打开你的程序文件,看看还能否看到中文,如果能,就保存为多字节编码,例如GBK,UTF-8
如果是问号,那么就只能重新写了。
多半的原因是字段的连接校对是默认的 latin1,但却以 utf8 编码操作
1.php页面
2.从数据库读的数据
3.保存时的编码三者必须一致
如果不是,那贴出查询出来的内容
比如出啊熏出来的在 $row['xxx'] 中
那么 echo base64_encode($row['xxx']); 贴出结果如果也是乱码,那么多半无解。不过也可像上面那样做一下,看看是否有希望
因此你可以在读取问题的代码前,加一句
mysql_query('set names latin1');
然后网页的呈现还是UTF-8编码
unpack是php的函数,要自己写
// 你的代码
// mysql_connect();
// mysql_select_db();
// 加入这一句
mysql_query('set names latin1');
// 你的代码
// $result = mysql_query('select * from ....');
// $row = mysql_fetch_assoc($result);
然后如果还是乱码的话,就需要检查一下网页<meta>标签里声明的是不是UTF-8了,如果不是,改成UTF-8至于为什么要加这句,因为你的数据在录入的时候被转换为了latin1编码存储