追根溯源,是htmlspecialchars惹的祸,PHP 5.4后GBK编码下默认不支持中文,转换后内容为空,太TM坑爹了!
UTF-8编码没有任何问题。
解决办法:
htmlspecialchars($value,ENT_COMPAT,'ISO-8859-1');
DEDE v5.7解决办法:
修改DeDeCMS\include\ckeditor\ckeditor_php5.php文件,137行左右
$out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value) . "</textarea>\n";
改成
$out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value,ENT_COMPAT,'ISO-8859-1') . "</textarea>\n";
参考:http://www.9enjoy.com/php54-htmlspecialchars/