discuz论坛帖子出现html乱码的解决思路

现在论坛社区这种模式,明显没有以前火爆了,这一年多以来特别明显,既没有软件破解的百家争鸣,也没有很成功的社区盈利模式可以参考,虽然也时而有什么门户网站应用哪个论坛程序,上下资讯榜,但在整个国内整个互联网来看,是明显的没落,明显的萧条了;论坛如此,博客这个模式,何尝不是如此呢?

从动网论坛的asp以来,再到后来的phpwind,以及现在的discuz,Linker玩过的国内外论坛,可谓不少,没有上百也有几十家了,因此,在使用期间,也经常转换论坛数据。在转换论坛过程中,总是会出现,出现帖子内容出现大量html乱码的问题,这有可能是不同论坛对不同的ubb代码解释不一致,也有可能是,是否启用html代码解释功能有关,今天帮朋友给把这问题给解决了一把。

事情起源于使用火车头采集器,采集一些行业内容到discuz7论坛上去;有关采集的评论,Linker不想说太多,一件武器有好的方面,也有坏的倾向,关键在于使用者,Linker一直偏好于摸索使用各方面软件,对于采集类软件,火车头是接触最早最多的,但自从火车头发布3.x版本以后,火车头采集器的免费版本功能就限制很多了,因此关注也少了许多。

朋友的站是一个产品行业站,带了一个discuz论坛,增加一些网站的收录,给主域名增加一些浏览量,以使排名好看些,这问题应该不大。他选择了一个站点,说不要太多,挑一挑,采个二百多条就行了,采集后他慢慢整理修改。规则、发布模块的,都好搞,很快就制定好了,但在测试发布时,有一个小问题,如果发布时使用UBB形式,帖子内容、图片都好控制版面,并且引用下载资料的url地址也显示链接正常,但有关ftp的下载地址就不行了,不仅识别不了,还被转换成了ubb代码,诸如:linwan.net.cn.rar,默认情况下,discuz论坛的ubb是不解释ftp的链接的,以前见到有高人修改过,但现在怎么找也找不到了,这就麻烦了。如果是人工,禁用掉discuz代码,启用html,发布正常;如果在采集发布时,使用html形式,发布后全是包含了html代码的帖子版面,惨不忍睹。

不说中间的尝试过程了,更有甚者,Linker在discuz后台连屏蔽替换功能都用上了,也没解决掉,不过最后还是在discuz论坛上,找到了一个稍费周折点的办法。

在discuz的cdb_posts表中,有一个字段“htmlon”是控制着,该贴是否启用html识别功能;首先在火车头采集器中,还是用html形式发布,采集发布完以后,用phpmyadmin执行如下语句,当然,如果discuz管理后台没有关闭可执行sql语句功能,在那个数据库升级页面执行也可以。

UPDATE `cdb_posts` SET `htmlon` = ‘1’ //后面where是条件,如果全部都启用,就不用带。

WHERE `cdb_posts`.`fid` =3 //这是指限制执行id为3的版块

and `cdb_posts`.`tid` > 105 //这是限制执行帖子id大于105

and `cdb_posts`.`author` =’admin’// 这是限制执行作者为admin的帖子

and `cdb_posts`.`useip`=’123.10.53.93’//这是限制执行发布者ip

主要还是让htmlon值为1,这样在发布以后,虽然是乱码,但经过这个字段的值修改,帖子就启用了html代码解释功能,帖子版面就正常了,那个ftp链接,源站点是什么样子,这里也显示什么样子。当然,版块要启用html功能。

如果是手工发布,想把启用html设置为勾选状态,可以直接修改模板post.htm,把html那里加如checked=“checked”就可以了,同样,论坛后台要开启该版块支持html。

过程就是折腾,折腾并辛苦快乐着。

One thought on “discuz论坛帖子出现html乱码的解决思路

  1. 真是对症下药.可算找到了.多谢

    补充一点:
    我帮人把论坛从dz6.0.0升级到dz7.0.0的.升级后的老帖子有这个问题
    按楼主的方法,直接修改数据库把所有老帖子的htmlon字段设置为1,帖子就没有html乱码了
    但是当你在发新帖后(升级到dz7.0.0后),新帖子的这个字段仍然是0.不过显示正常
    同时,如果你修改老帖子(升级到dz7.0.0后),这个字段又会被更新回0.不过也能显示正常.

    linker 于 2009-7-12 21:53:40 回复

    对discuz折腾也就是能用就行,不愿意再多花心思,论坛,有点不像论坛了,反而pw还有点那么意思。但国内玩论坛,也确实没前景了。

Comments are closed.