登录 注册

登录

问题 很奇怪怎么就我的SMF论坛有问题

更多
2006年11月21日 16:57 #1 作者: walkerhxg
我用SMF1.1RC3+smf_1-1-rc3_joomla_1-1-6_bridge+joomla1.0.11 UTF8版的,帖子内容总有乱码呀,发好几个帖子测试,总是同样的汉字出现乱码!另外,我的发表新主题页面的 帖子图案选项竟然不显示中文,是英文的呀,好奇怪,其他的都是中文的。真是要晕掉了,帮我看看哦,www.51yashe.com/forum

登录 或者   注册一个会员帐号 来参与讨论

更多
2006年11月21日 17:02 #2 作者: walkerhxg
快帮我看看,要崩溃了

登录 或者   注册一个会员帐号 来参与讨论

  • baijianpeng
  • 访客
  • 访客
2006年11月22日 15:51 - 2006年11月24日 15:56 #3 作者: baijianpeng
baijianpeng 回复了话题: Re: 很奇怪怎么就我的SMF论坛有问题
关于乱码问题确实比较烦人。我这个论坛刚刚安装的时候也是有乱码,后来得到大侠 AutoIt 的指点,修改了一个文件,终于消除了乱码。我把这个文件附在本帖,请参考。

不过,奇怪的是,我这两天在改造网站过程中,建设的新论坛是采用 JSMF 桥接器作的,做成后论坛发帖没有乱码。关于这个桥接器的下载以及相关文章我会改日发表。请耐心等待。
文章乱码的修正:
 
---------------------------------------------------------
 
打开:Sources/Subs-Post.php
 
找到:
 
 // Put it back together!
 if (!$previewing)
  $message = strtr(implode('', $parts), array('  ' => '  ', "\n" => '
', $context['utf8'] ? "\xC2\xA0" : "\xA0" => ' '));
 else
  $message = strtr(implode('', $parts), array('  ' => '  ', $context['utf8'] ? "\xC2\xA0" : "\xA0" => ' '));
 
改为:
 
 // Put it back together!
 if (!$previewing)
  $message = strtr(implode('', $parts), array('  ' => '? ', "\n" => '
'));
 else
  $message = strtr(implode('', $parts), array('  ' => '? '));
 
---------------------------------------------------------
 
打开:Sources/Subs.php
 
找到:
 
// Switch out quotes really quick because they can cause problems.
      $data = strtr($data, array(''' => '\'', ' ' => $context['utf8'] ? "\xC2\xA0" : "\xA0", '"' => '>">', '"' => '<"<', '<' => '<lt<'));
      $data = preg_replace(array('~(?<=[\s>\.(;\'"]|^)((?:http|https|ftp|ftps)://[\w\-_%@:|]+(?:\.[\w\-_%]+)*(?::\d+)?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-_\~%\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i', '~(?<=[\s>(\'<]|^)(www(?:\.[\w\-_]+)+(?::\d+)?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-_\~%\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i'), array('[url]$1[/url]', '[url=http://$1]$1[/url]'), $data);
      $data = strtr($data, array('\'' => ''', $context['utf8'] ? "\xC2\xA0" : "\xA0" => ' ', '>">' => '"', '<"<' => '"', '<lt<' => '<'));
     }
 
改为:
 
// Switch out quotes really quick because they can cause problems.
      //$data = strtr($data, array(''' => '\'', ' ' => $context['utf8'] ? "\xC2\xA0" : "\xA0", '"' => '>">', '"' => '<"<', '<' => '<lt<'));
      $data = preg_replace(array('~(?<=[\s>\.(;\'"]|^)((?:http|https|ftp|ftps)://[\w\-_%@:|]+(?:\.[\w\-_%]+)*(?::\d+)?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-_\~%\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i', '~(?<=[\s>(\'<]|^)(www(?:\.[\w\-_]+)+(?::\d+)?(?:/[\w\-_\~%\.@,\?&;=#+:\'\\\\]*|[\(\{][\w\-_\~%\.@,\?&;=#(){}+:\'\\\\]*)*[/\w\-_\~%@\?;=#}\\\\])~i'), array('[url]$1[/url]', '[url=http://$1]$1[/url]'), $data);
      $data = strtr($data, array('\'' => ''', '>">' => '"', '<"<' => '"', '<lt<' => '<'));
     }
 
找到:
 
$data = strtr($data, array($breaker => '< >', ' ' => $context['utf8'] ? "\xC2\xA0" : "\xA0"));
     $data = preg_replace(
      '~(?<=[>;:!? ' . ($context['utf8'] ? '\x{C2A0}' : '\xA0') . '\]()]|^)([\w\.]{' . $modSettings['fixLongWords'] . ',})~e' . ($context['utf8'] ? 'u' : ''),
      "preg_replace('/(.{" . ($modSettings['fixLongWords'] - 1) . '})/' . ($context['utf8'] ? 'u' : '') . "', '\\\$1< >', '\$1')",
      $data);
     $data = strtr($data, array('< >' => $breaker, $context['utf8'] ? "\xC2\xA0" : "\xA0" => ' '));
 
改为:
 
//$data = strtr($data, array($breaker => '< >', ' ' => $context['utf8'] ? "\xC2\xA0" : "\xA0"));
     $data = preg_replace(
      '~(?<=[>;:!? ' . ($context['utf8'] ? '\x{C2A0}' : '\xA0') . '\]()]|^)([\w\.]{' . $modSettings['fixLongWords'] . ',})~/ue' . ($context['utf8'] ? 'u' : ''),
      "preg_replace('/(.{" . ($modSettings['fixLongWords'] - 1) . '})/' . ($context['utf8'] ? 'u' : '') . "', '\\\$1< >', '\$1')",
      $data);
     //$data = strtr($data, array('< >' => $breaker, $context['utf8'] ? "\xC2\xA0" : "\xA0" => ' '));
 
---------------------------------------------------------

登录 或者   注册一个会员帐号 来参与讨论