从mysql调出来的数据在php页面显示乱码 急急急.....

jiayuxi 2008-12-06 10:30:21
mysql调出来的数据在php网页上显示乱码,就只有调出来的数据显示乱码,其他正常,
utf-8的编码我试过了,gbk,gb2312,我都试过了,但问题还是没有解决,我快郁闷死了。
网页搜的乱码问题我都试过了,但还是这样,有没有朋友专门针对这个问题有好的解决办法的啊?或您遇到了也有类似的情况的,帮忙解决一下,感激不尽!!
留言请注意不要发些无用的东西了:
1:set name 方法,我试过了,没用。
2:head方法还是不能解决,
3:数据库编码保持一致, 没用

4:网页编码meta请您不用说,这我肯定改了!!
我知道肯定有地方错了,要不然不会出现乱码,可该用到的解决办法我都用了,我好郁闷啊,有爱心的朋友帮帮忙吧,我要疯了!!
...全文
535 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
tecdig 2008-12-08
  • 打赏
  • 举报
回复
htmlentities($str, ENT_QUOTES,"utf-8")
应该是这样
少打了一参数……
tecdig 2008-12-08
  • 打赏
  • 举报
回复
另外写成
htmlentities($str, ENT_QUOTES)
这样就好了

在这个帖子里找到的方法
http://bbs.chinaunix.net/viewthread.php?tid=1256679
好像里面说得有点恐怖……和SQL注入都扯上关系了
tecdig 2008-12-08
  • 打赏
  • 举报
回复
这个问题我也遇到了
终于发现
htmlentities这个函数做的怪

不用他就能正常显示……
starrychen 2008-12-06
  • 打赏
  • 举报
回复
你试一下。<?php
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header('Content-Type:text/html;charset=GB2312');
这个地方加上试试。用你页面的“charset=”,一般都是页面显示字符的问题.
yaheel 2008-12-06
  • 打赏
  • 举报
回复
我遇到过同样的问题.

4.0没有UTF-8字符集,会出现乱码。如果不需要直接查看数据库的数据的话,


写入数据时在什么字符集下写入,输出也在什么字符集显示,是能够还原不是乱码的状态。


请注意红色字的部分.
phpboy 2008-12-06
  • 打赏
  • 举报
回复
UP

楼上面说的
penglewen 2008-12-06
  • 打赏
  • 举报
回复
有加载外部的CSS或js吗?把里面的字符也改成utf-8的。。或是把里面的中文全部删丢。。。

header('content-Type: text/html; charset=utf-8');这个前面不用@
wzwen 2008-12-06
  • 打赏
  • 举报
回复
不会是空间有问题吧。。。
dzxccsu 2008-12-06
  • 打赏
  • 举报
回复
和IE没关系,要不你把所有编码都改为gb2312,数据库,数据库连接,面页。都改为gb2312
phpboy 2008-12-06
  • 打赏
  • 举报
回复
...

你为什么用二个版本?

试试用IE7
jiayuxi 2008-12-06
  • 打赏
  • 举报
回复
ie7和6我都有,应该不会是这样的吧
phpboy 2008-12-06
  • 打赏
  • 举报
回复
如果数据库正常的话,那么出现乱码的原因也就上面几种...

用的是IE7么?
IE7以下版本应该不支持UTF-8
phpboy 2008-12-06
  • 打赏
  • 举报
回复


require_once('common.php');
$countRow = mysql_num_rows(mysql_query("SELECT count(*) FROM gb_content"), MYSQL_BOTH); //这样求总行数
$count = $countRow[0]; //总行数
$_GET['page'] = intval($_GET['page']);
if ($_GET['page']<=0) {
$_GET['page'] = 1;
}



jiayuxi 2008-12-06
  • 打赏
  • 举报
回复
数据库显示正常?
正常,数据库里面中文显示正常的!!就输出的中文数据乱码,其他都正常
phpboy 2008-12-06
  • 打赏
  • 举报
回复
数据库显示正常?
cyr11 2008-12-06
  • 打赏
  • 举报
回复
你用记事本把它另存编码ANSI格式

头文件<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
数据库连接用mysql_query("set names 'GBK'"); //使用GBK中文编码;
就可以解决乱码问题
jiayuxi 2008-12-06
  • 打赏
  • 举报
回复
require_once('common.php')是连接数据库的文件,里面已经有了,我按楼上说的也试了,不行....
phpboy 2008-12-06
  • 打赏
  • 举报
回复


$lines = 10; // 每页行数
$page = $_GET['page'];// 当前页
$limit = ($page - 1) * $lines;//起启行
$total = ceil($count/$lines); // 总页数


mysql_query("set names 'utf8'");//加上这句试试

$result = mysql_query("SELECT * FROM gb_content order by id desc limit " .$limit. ','.$lines.'');//查询数据

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {// 取一条数据
?>
<table width="700" border="0" cellspacing="0" cellpadding="0" class="tb">
<tr>
<td class="bg"><b>[<?php echo htmlentities($row['username']) ?>]</b> 发表于:<?php echo htmlentities($row['insert_time']) ?></td>
</tr>


dzxccsu 2008-12-06
  • 打赏
  • 举报
回复
这句require_once('common.php');前面加上
@header('content-Type: text/html; charset=utf-8');试试!

jiayuxi 2008-12-06
  • 打赏
  • 举报
回复

<?php
require_once('common.php');
$countRow = mysql_fetch_array(mysql_query("SELECT count(*) FROM gb_content"), MYSQL_BOTH);
$count = $countRow[0]; //总行数
$_GET['page'] = intval($_GET['page']);
if ($_GET['page']<=0) {
$_GET['page'] = 1;
}

$lines = 10; // 每页行数
$page = $_GET['page'];// 当前页
$limit = ($page - 1) * $lines;//起启行
$total = ceil($count/$lines); // 总页数
$result = mysql_query("SELECT * FROM gb_content order by id desc limit " .$limit. ','.$lines.'');//查询数据

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {// 取一条数据
?>
<table width="700" border="0" cellspacing="0" cellpadding="0" class="tb">
<tr>
<td class="bg"><b>[<?php echo htmlentities($row['username']) ?>]</b> 发表于:<?php echo htmlentities($row['insert_time']) ?></td>
</tr>
<tr>
<td><?php echo htmlentities($row['content']) ?></td>
</tr>
<tr>
<td align="right"><a href="edit.php?id=<?php echo $row['id'] ?>">修改</a> <a href="delete.php?id=<?php echo $row['id'] ?>">删除</a></td>
</tr>
</table>
<?php
}
mysql_free_result($result);
if ($page>1) {
echo '<a href="?page=1">首页</a> <a href="?page='. ($page-1) .'">上一页</a>';
}
if ($page<$total) {
echo ' <a href="?page=' . ($page+1) .'">下一页</a> <a href="?page='.$total.'">末页</a>';
}
?>

还有什么,我再贴!
加载更多回复(8)

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧