Joomla之门广告招商,PR=5,alexa 排名2万1

作者 主题: 使用UTF-8,RSS乱码解决方法  (阅读 5945 次)

vampires

  • Newbie
  • *
  • 来自: 北京
  • 帖子: 10
  • 声望: +0/-0
  • 上次登录:2009-10-26, 17:49
  • 注册于:2007-06-29, 14:46
  • 在办公室
    使用UTF-8,RSS乱码解决方法
    « 于: 2007-12-26, 10:19 »
    当我们使用utf-8编码时,会产生很多乱码问题,可能很多朋友也象我一样遇到RSS订阅的乱码问题,查了很多网站,终于修改成功,希望与朋友们分享。
    修改RSS乱码有三步:
    1.修改组件components/com_rss/rss.php文件
    将$info['encoding'] = $iso[1]
    修改为$info['encoding'] = UTF-8 然后将文件另存为UTF-8格式的rss.php。
    2.修改组件components/com_newsfeeds/newsfeeds.php文件

    //Encoding
          $params->def('utf8'    1)
    修改为
    //Encoding
          $params->def('utf-8'    1)
    3.修改includes/feedcreator.class.php文件约420行处
    将(!in_arry($key, arry("_feed", "contentType", "enconding"))){
    修改为(!in_arry($key, arry("_feed", "contentType"))){
    希望能够帮助解决遇到RSS乱码的朋友们。


    白建鹏

    • Administrator
    • Hero Member
    • *****
    • 来自:
    • 帖子: 7594
    • 声望: +36/-0
    • 上次登录:今天 16:51
    • 注册于:2006-11-09, 20:32
    • 分享,是一种美德 !
      • 白建鹏的个人网站
      • 电子邮件
    非常感谢 vampires 指点!Joomla! 中文社区很需要你这样的热心人。欢迎常来本论坛指导我们。

    补充一下,在第 3 个文件 includes/feedcreator.class.php 的第 420 行(Joomla! 1.0.13 版本),其代码已经是:

    程序代码: [Select]
    if (!in_array($key, array("_feed", "contentType"))) {

    因此不需要修改了。不知道我这个意见对不对?
    « 最后编辑时间: 2007-12-27, 07:55 作者 白建鹏 »


    vampires

    • Newbie
    • *
    • 来自: 北京
    • 帖子: 10
    • 声望: +0/-0
    • 上次登录:2009-10-26, 17:49
    • 注册于:2007-06-29, 14:46
    • 在办公室
      还是白老师说的对,在这里感谢白老师建立的JOOMLAGATE,才使得我们这些JOOMLA爱好者有了可以探讨学习的地方。感谢白老师!

      hzsky

      • Newbie
      • *
      • 来自:
      • 帖子: 12
      • 声望: +0/-0
      • 上次登录:2009-05-28, 13:17
      • 注册于:2008-01-09, 18:57
        不过我按照这个方法改了,还是不行啊

        白建鹏

        • Administrator
        • Hero Member
        • *****
        • 来自:
        • 帖子: 7594
        • 声望: +36/-0
        • 上次登录:今天 16:51
        • 注册于:2006-11-09, 20:32
        • 分享,是一种美德 !
          • 白建鹏的个人网站
          • 电子邮件
        本站会员 82008218 增加了一个修改,打开 includes/feedcreator.class.php 文件,大约在523左右,找到:
        程序代码: [Select]
        var $encoding = "ISO-8859-1";
        修改为
        程序代码: [Select]
        var $encoding = "utf-8";

        这个方法可以解决 Remository 组件 RSS 输出乱码的问题。

        5831483

        • Newbie
        • *
        • 来自:
        • 帖子: 18
        • 声望: +0/-0
        • 上次登录:2008-11-29, 15:19
        • 注册于:2007-10-09, 12:48
          • 电子邮件
        问题是 ,以上所有的方法我都用了 ,问题不但没有解决 ,而且变的更加严重了,乱码依旧乱码,原来显示正常的的现在压根不显示了,还望各位大侠指点
        好比使用新浪网游的rss 和 硅谷游戏的rss 原本是能显示的 现在显示不了了
        而类似 21.cn游戏 it世界网游戏频道 显示依旧是乱码

        白建鹏

        • Administrator
        • Hero Member
        • *****
        • 来自:
        • 帖子: 7594
        • 声望: +36/-0
        • 上次登录:今天 16:51
        • 注册于:2006-11-09, 20:32
        • 分享,是一种美德 !
          • 白建鹏的个人网站
          • 电子邮件
        这些修改的目的是为了使 utf-8 编码的 RSS 源显示正常中文。你所提到的“新浪网游的rss 和 硅谷游戏的rss ”都是 gb2312 编码,所以改为 utf-8 之后反而成了乱码。

        这就是一个两难:你的 Joomla! 网站使用了 utf-8,如果不按照上述方法修改,则你的 RSS 输出是乱码;如果修改,则引用别人的 RSS 成了乱码。

        因此,你只能自己斟酌选择。现在似乎没有更好的办法。

        5831483

        • Newbie
        • *
        • 来自:
        • 帖子: 18
        • 声望: +0/-0
        • 上次登录:2008-11-29, 15:19
        • 注册于:2007-10-09, 12:48
          • 电子邮件
        恩 ,看来目前也只能挑选一些能正常显示的rss源了