在使用Dedecms CMS系统时,尤其是GBK版本,可能会遇到一些编码问题。这些问题主要体现在后台系统基本参数无法保存中文、编辑器中的中文显示异常以及标签和标题不显示等情况。本文将详细介绍如何解决这些问题,确保您的网站在PHP 5.4环境下正常运行。

首先,如果您发现后台-系统基本参数无法保存中文,可以通过修改模板文件来解决。
打开路径:dede\\\\templets\\\\sys_info.htm
搜索以下代码:


htmlspecialchars($row['value'])
    

将其替换为:


htmlspecialchars($row['value'],ENT_COMPAT ,'GB2312')
    

如果还有其他页面存在类似问题,建议在Dreamweaver中整站搜索 htmlspecialchars($row['value']) 并批量替换为 htmlspecialchars($row['value'],ENT_COMPAT ,'GB2312')。

接下来,对于编辑器中的中文显示问题,需要修改 include/ckeditor/ckeditor_php5.php 文件。
找到以下代码:


$out = "<textarea name=\\\\" . $name . "\\\\" . $attr . ">" .htmlspecialchars($value). "</textarea>\\\\n";
    

将其改为:


$out = "<textarea name=\\\\" . $name . "\\\\" . $attr . ">" .htmlspecialchars( $value, ENT_COMPAT, 'GB2312' ). "</textarea>\\\\n";
    

此外,文章页标签不显示的问题可以通过修改 include/taglib/tag.lig.php 文件解决。
找到以下代码:


$row['tag'] = htmlspecialchars($row['tag']);
    

改为:


$row['tag'] = htmlspecialchars($row['tag'],ENT_COMPAT ,'GB2312');
    

对于发布文章标题不显示的问题,需修改 dede/article_add.php 和 dede/article_edit.php 文件。
找到以下代码:


$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen));
    

替换为:


$title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312');
    

最后,如果发现核心-批量维护-tag标签管理中的中文标签不显示,可以修改 /dede/templets/tags_main.htm 文件。
找到以下代码:


$fields['tag'] = htmlspecialchars($fields['tag']);
    

替换为:


$fields['tag'] = htmlspecialchars($fields['tag'],ENT_COMPAT ,'GB2312');
    

通过以上步骤的修改,您的Dedecms CMS系统在PHP 5.4环境下应该不会再出现编码问题了。希望这些方法能帮助您顺利解决问题。


空格 示例:这里有一个 空格 标签 换行 示例:这是一个换行标签
下一行内容