0

我希望有人可以帮助我解决这个问题。几个月来(自去年 8 月以来),我的网站一直存在一个问题,奇怪的字符出现在各处 - 特别是在用户生成的内容中。

我已经搜索并搜索了答案,但似乎没有任何效果,尽管最紧迫的(在博客组件中)已通过设置 JCE 来验证 HTML 得到解决——这在博客组件(EasyBlog)中很好,但在任何地方都没有其他(它不那么重要但仍然是一个问题)。

这是我到目前为止所做的:

  1. 从多台机器、多个浏览器检查该站点 - 没有区别。
  2. 检查了 MySQL 数据库和表排序规则——它们是utf8_general_ci
  3. 将 .php添加AddDefaultCharset UTF-8到.htaccess 文件中。AddCharset UTF-8我玩了很多年,这两个似乎是唯一没有使网站崩溃的组合。
  4. 已检查 HTML 标头,它们肯定具有正确的内容编码类型(设置为UTF-8
  5. 我尝试了不同的 WSIWIG 编辑器无济于事。此外,通常在代码输出中出现字符 - 通常是 A 旁边的 »

我尝试了一种黑客来强制连接脚本,UTF-8但这会导致网站崩溃。

如果有人对我还能做什么有任何想法......我全神贯注(请)

提前谢谢了

4

1 回答 1

2

如果您的服务器运行的是 PHP 5.4+,我建议您尝试JCE 论坛中描述的以下解决方案

在编辑器全局配置中,将“ Entity Encoding”设置为“ UTF-8

在“自定义配置变量”字段中,添加:

keep_nbsp:0

请留意将解决此问题的 JCE 2.3.2 版本。

注意事项:

  1. 任何出现虚假 â 或 Â 的地方都必须进行编辑以删除字符(一旦将上述更改应用于 JCE)。
  2. 问题是Joomla!2.5.x 的使用get_html_translation_table()依赖于默认值,PHP 5.4 将默认encoding参数更改为UTF-8. 以前它默认为ISO-8859-1

  3. 对于您可以尝试修改的核心_decode()/libraries/joomla/filter/input.php请查找以下行(大约 644):

    $trans_tbl = get_html_translation_table(HTML_ENTITIES);

并将其更改为:

$trans_tbl = get_html_translation_table(HTML_ENTITIES, ENT_COMPAT, 'ISO-8859-1');
于 2013-02-23T09:40:03.257 回答