在沒用PHP5.4的環境做Dede后臺的時候,武林網一直沒有遇到這個問題,昨天上傳一個新的模版到空間去測試發現后臺的系統基本參數設置中所有的中文內容都無法保存,關于這個問題,其實以前也聽說過,知識一直沒有遇到,這是因為網站編碼的問題,UTF-8版本的織夢后臺在PHP5.4環境下沒有這個問題,只有GBK版本的后臺才會出現這個問題,所以需要給表單中的中文轉碼踩能解決這個問題。

一、后臺基本參數無法保存中文的解決方法:
打開dede/templets/sys_info.htm,查找代碼(大概在182行和192行,注意有兩處)
htmlspecialchars($row['value'])
都替換成:
htmlspecialchars($row['value'],ENT_COMPAT ,'GB2312')
如果還發現有其他頁面也有這個問題,同理,打開對應的模版文件,搜索相同字符再替換即可解決。
二、編輯器的中文無法保存的解決方法:
打開include/ckeditor/ckeditor_php5.php,查找代碼(大概在第137行)
dede_htmlspecialchars($value)
修改成
dede_htmlspecialchars($value, ENT_COMPAT, 'GB2312' )
三、文章發布頁標簽不顯示的解決方法:
打開dede/article_add.php 和 dede/article_edit.php,查找代碼(分別在第101行和第108行)
dede_htmlspecialchars(cn_substrR($title,$cfg_title_maxlen))
均改為:
dede_htmlspecialchars(cn_substrR($title,$cfg_title_maxlen),ENT_COMPAT ,'GB2312')
四、中文tag無法顯示的解決方法:
打開 dede/templets/tags_main.htm,查找代碼(大概在第82行)
htmlspecialchars($fields['tag'])
修改為:
htmlspecialchars($fields['tag'],ENT_COMPAT ,'GB2312')
以上四個解決方法基本能搞定gbk版本的Dede后臺在PHP5.4環境下不顯示中文的問題,其實就是加了一個轉碼而已,原理很簡單,如果還有其他什么地方的問題,可以參考此方法做類似修改。



















