无法从数据库中删除由编辑器生成的 ;

时间:2015-12-07 作者:Overdose

我发现,当我保存帖子时,有时会节省一些“不间断”的空间。我不介意“常规”。这可以出现在文本中的任何位置。

在编辑器中,它们显然不可见。

=>如果使用编辑器源代码工具,该空间看起来像常规空间。

问题是:在网站上,他们不理解,所以这两个词好像根本没有空格。

如果我检查来源,我会看到;对于这些空间。

我已经保存了很多数据,所以我想用query删除nbspace:

我试过:

UPDATE `vss_posts` SET `post_content` = replace(`post_content`, " ", " ");
但它什么也没做:nbsp还在那里。

我看到了this post 谈论hexa nbsp;

但很明显,

UPDATE `vss_posts` SET `post_content` = replace(`post_content`, "\\xc2\\xa0", " ");
不起作用。

有什么问题吗?如何在db中删除它们?我怎样才能防止它们再次被保存?

在上述帖子中,我看到:

add_filter( \'wp_insert_post_data\', \'rm_wp_insert_post_data\', \'99\', 2 );
function rm_wp_insert_post_data ( $data , $postarr ) {
   return str_replace("\\xc2\\xa0", " ", $data); 
}
这适用于我的问题吗?(只是预防,不是治疗)

我找到sofar的唯一方法是手动编辑帖子,删除空间并使用“空间”选项卡重新创建。

1 个回复
最合适的回答,由SO网友:garth 整理而成

经常添加不间断空格,因为它们出现在字处理文档中,然后复制到WP编辑器中。我发现从一篇文章中删除它们(包括从Word文档中复制文本所产生的任何不需要的格式)的最简单方法是复制文本(在可视化编辑器模式下),将它们包含在文本编辑器中(从而剥离所有格式),然后复制回可视化编辑器。

要从所有数据库内容中删除它们,我将使用数据库管理工具导出SQL数据库。我使用phpMySQL来实现这一点-选择表并单击导出按钮,设置压缩格式,并将其设置为包含在导入时删除表的命令,以便在重新加载数据库时,导入将现有数据替换为新数据。这样,您就可以从下载的压缩导出中提取文件,以便在出现问题时可以使用存档备份。

然后,使用文本编辑器查找  并替换为空格,然后重新导入已编辑的SQL数据库。只需要几分钟。