最近在学习PHP加入FCKeditor 在线编辑器,发现在初始化Value赋值时,英文可以显示出来,中文怎么都显示不出来,连乱码都不显示。
经过漫长的探索,终于找到原因了!
在fckeditor目录下有个fckeditor_php5.php文件,里面有个“$HtmlValue = htmlspecialchars( $this->Value )” 这个$HtmlValue就是控制着编辑器初始显示的字符。为什么中文不显示呢,原因就在于htmlspecialchars()函数。这个函数定义是”htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。“
htmlspecialchars(string,quotestyle,character-set) 其中第2个和第3个参数是可选的。问题就出现在第3个参数--字符集上,如果只填写一个参数,那么character-set是
ISO-8859-1 - 默认。西欧。这时填写中文就会被当作无法被识别的字符集将被忽略,并由 ISO-8859-1 代替。所以中文会消失。那么填写支持中文的字符集,函数定义的支持简体中文的是”gb2312“,这样就没问题了。