乱码............................急!!!

爱蒂菜鸟 2013-01-25 09:30:28
近两天偶在学习用PHP开发“用户管理系统”,但是在页面制作完成测试时出现了问题,表现在:在“找回密码”的测试过程中,在下面这步出现了乱码,如图:



按我自己的设计意图,是应该在“问题提示”后面显示提问的问题以供作答,但是这个地方却出现了莫名其妙的乱码......

偶已查过不少资料,试过不少方法,但最终问题依旧,急啊,特来此寻求帮助,请高手不吝赐教,多谢了!!!
...全文
278 25 点赞 打赏 收藏 举报
写回复
25 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
改一下昵称 2013-01-26
因为你以单字节编码ASCII来保存中文,所以你会发现中文怎么都成了问号。 还是我之前说的,打开你的程序文件,看看还能否看到中文,如果能,就保存为多字节编码,例如GBK,UTF-8 如果是问号,那么就只能重新写了。
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-26
引用 8 楼 bing15 的回复:
你这个是从哪里取出来的?
是我作测试时的页面截图。
  • 打赏
  • 举报
回复
bonlog 2013-01-26
共有三个一致: 1.php页面 2.从数据库读的数据 3.保存时的编码 三者必须一致
  • 打赏
  • 举报
回复
ImN1 2013-01-26
引用 11 楼 xuzuning 的回复:
当从数据库读取的内容大多数被显示成问号时 多半的原因是字段的连接校对是默认的 latin1,但却以 utf8 编码操作
+1 从上面的显示看,问题只出在提问,是数据库读出来的问题,不是页面本身编码的问题
  • 打赏
  • 举报
回复
line_us 2013-01-26
看来这个问题挺麻烦。
  • 打赏
  • 举报
回复
xuzuning 2013-01-26
当从数据库读取的内容大多数被显示成问号时 多半的原因是字段的连接校对是默认的 latin1,但却以 utf8 编码操作
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-26
引用 23 楼 dream1206 的回复:
修改从数据库读取问题的那段代码: PHP code?12345678// 你的代码// mysql_connect();// mysql_select_db();// 加入这一句mysql_query('set names latin1');// 你的代码// $result = mysql_query('select * from ....');// $row = m……
按你的方法试过了,但还是没有解决问题......
  • 打赏
  • 举报
回复
改一下昵称 2013-01-26
修改从数据库读取问题的那段代码:
// 你的代码
// 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编码存储
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-26
引用 20 楼 dream1206 的回复:
这个乱码是latin1在utf-8环境下的表现 因此你可以在读取问题的代码前,加一句 mysql_query('set names latin1'); 然后网页的呈现还是UTF-8编码
多谢这们朋友的热心回复,你每次的回复我都仔细、努力地看了,但都不太明白你所表述的意思......呵呵,见笑了,新手,菜鸟,正在努力向高手们学习!
  • 打赏
  • 举报
回复
ImN1 2013-01-26
你先试一下其他人说的方法是否可行,因为那些毕竟简单些
引用 19 楼 rrhhll 的回复:
引用 18 楼 snmr_com 的回复:unpack('H*', 读出来的字符串); 贴一下这个结果我看看 请问你说的这个应该在哪里操作,我没有找到呢
unpack是php的函数,要自己写
  • 打赏
  • 举报
回复
改一下昵称 2013-01-26
这个乱码是latin1在utf-8环境下的表现 因此你可以在读取问题的代码前,加一句 mysql_query('set names latin1'); 然后网页的呈现还是UTF-8编码
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-26
引用 18 楼 snmr_com 的回复:
unpack('H*', 读出来的字符串); 贴一下这个结果我看看
请问你说的这个应该在哪里操作,我没有找到呢
  • 打赏
  • 举报
回复
ImN1 2013-01-26
unpack('H*', 读出来的字符串); 贴一下这个结果我看看
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-26
引用 16 楼 xuzuning 的回复:
你在 phpmyadmin 中看一下是否是乱码
如果不是,那贴出查询出来的内容
比如出啊熏出来的在 $row['xxx'] 中
那么 echo base64_encode($row['xxx']); 贴出结果

如果也是乱码,那么多半无解。不过也可像上面那样做一下,看看是否有希望

这是我在phpmyadmin里面查看到的信息,question与answer两处显示的都是乱码,其他都正常!
  • 打赏
  • 举报
回复
xuzuning 2013-01-26
你在 phpmyadmin 中看一下是否是乱码 如果不是,那贴出查询出来的内容 比如出啊熏出来的在 $row['xxx'] 中 那么 echo base64_encode($row['xxx']); 贴出结果 如果也是乱码,那么多半无解。不过也可像上面那样做一下,看看是否有希望
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-26
引用 12 楼 snmr_com 的回复:
引用 11 楼 xuzuning 的回复:当从数据库读取的内容大多数被显示成问号时 多半的原因是字段的连接校对是默认的 latin1,但却以 utf8 编码操作 +1 从上面的显示看,问题只出在提问,是数据库读出来的问题,不是页面本身编码的问题
是的,就只有那个地方出现问号或乱码,并不是其它所有的地方都出现乱码,请问这种情况怎么解决呢?
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-26
引用 11 楼 xuzuning 的回复:
当从数据库读取的内容大多数被显示成问号时 多半的原因是字段的连接校对是默认的 latin1,但却以 utf8 编码操作
多谢回复,请问这种情况如何解决!
  • 打赏
  • 举报
回复
bing15 2013-01-25
你这个是从哪里取出来的?
  • 打赏
  • 举报
回复
MailEase 2013-01-25
都试过了都不行?那就奇怪了。
  • 打赏
  • 举报
回复
爱蒂菜鸟 2013-01-25
引用 5 楼 dream1206 的回复:
现在打开这个乱码的文件,如果还能看到中文,那就另存为gbk或utf-8格式,然后在HTML <head>标签里声明页面的编码。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 或GBK: <meta http-equiv="Content-Type" content="text……
你说的这些早都试过了,就是不能解决问题啊,郁闷!
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
基础编程
加入

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2013-01-25 09:30
社区公告
暂无公告