追根溯源,是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/
本文介绍了在PHP5.4及更高版本中使用htmlspecialchars处理GBK编码时出现中文乱码的问题,并提供了解决方案。通过调整字符集为ISO-8859-1,可以避免中文内容在转换过程中丢失。此外,还提供了针对DeDeCMS v5.7的具体修改方法。
159

被折叠的 条评论
为什么被折叠?



