织梦系统基本参数设置不能保存中文以及在编辑器下中文不显示的问题
GBK版DedeCMS在PHP5.4以上环境下无法保存中文的处理方法
后台-系统基本参数无法保存中文 修改方法:
dede\templets\sys_info.htm里面搜索
1 | htmlspecialchars($row['value']) |
替换成
1 | htmlspecialchars($row['value'],ENT_COMPAT ,'GB2312′) |
如果发现还有其他页面,也没办法保存中文,最好在dreamweaver下整站搜索
1 | htmlspecialchars($row['value']) |
然后批量替换成
1 | htmlspecialchars($row['value'],ENT_COMPAT ,'GB2312′) |
这样就能保证系统的表单没问题。
但是这个修改的方法,对编辑器中的中文没办法,还要修改编辑器,方法为:
include/ckeditor/ckeditor_php5.php文件
找到代码
1 | $out =".htmlspecialchars($value). "; |
改成:
1 | $out = ".htmlspecialchars( $value, ENT_COMPAT, 'GB2312' ). "; |
还有标签也不显示,修改方法为:
dede/article_add.php 和 dede/article_edit.php将
1 | $title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen)); |
改成
1 | $title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312'); |
这些都没问题后,发现核心-批量维护-tag标签管理里面的中文标签全部都不显示了,真是麻烦,修改方法:
打开/dede/templets/tags_main.htm
找到:
1 | $fields['tag'] = htmlspecialchars($fields['tag']); |
替换为
1 | $fields['tag'] = htmlspecialchars($fields['tag'],ENT_COMPAT ,'GB2312′); |
这样修改,tag标签就显示了。
这样一修改,在php5.4下的gbk版织梦就不会出现编码的问题了。