我们用PHP版的ckeditor的同行们是不是经常会遇到空格 全变成问号的情况呢(如图)。
录入进去的是 (HTML代码),utf-8编码,但用ckeditor读入内容时,在编辑器里显示的却是个黑点问号,切换到源码,竟是一个小方框,怎么办呢,真是折腾死人了。。。
我们总归咎于ckeditor的原因,其实还是编码的原因,解决方法如下――
ckeditor 空格nbsp全变问号的解决方法――工具/原料Dreamweaver或其他网页源码编辑器ckeditor 空格nbsp全变问号的解决方法――方法/步骤
ckeditor 空格nbsp全变问号的解决方法 1、
方法1:修改ckeditor/config.js
所有的情况都出现在有空格 的地方,而ckeditor对于空行是自动添加段落标记"<p></p>"的,而如果这一行里没有内容的话,又自动在里面添加” “,所以可以控制ckeditor不让它自动添加“nbsp”,在config.js里加上语句“config.fillEmptyBlocks=false;”(如图)。
另外也有可以控制ckeditor让它不自动添加段落标记的,这个自己百度研究。
(本方法不是最佳之选,毕竟编辑时还是需要用到空格键来修饰段落的。)
ckeditor 空格nbsp全变问号的解决方法 2、
方法2:
传递给ckeditor的这个$content要先替换一下内容,把“&”转为"&",即:str_replace(" ","&nbsp;",$content);”这样也可以让ckeditor正常显示,也可以随意录入空格符。
ckeditor 空格nbsp全变问号的解决方法 3、
方法3:从根源上解决
之所以在切换到源码时看到一个个小方框,原因是转换时编码不对。
我们平时都把内容先用html_entity_decode转一下再传给ckeditor,一般会这样写“html_entity_decode($content)”,html_entity_decode默认编码是ISO-8859-1,而我们数据库存的数码的编码通常是utf8(至少也不会用到ISO-8859-1这种编码),所以我们在转换时要把html_entity_decode写完整:html_entity_decode($content_EN,ENT_COMPAT,"UTF-8"),中间的ENT_COMPAT也是html_entity_decode默认值,因为要写第三个参数,所以第二个参数也必须带上,详细自己查看html_entity_decode的详细说明。
ckeditor 空格nbsp全变问号的解决方法――注意事项这是本人困扰多时,也折腾了很久的问题,原来原因只在一个小小的地方,汗,希望能帮助到你,给个赞吧!