Text cut off on save

时间:2012-06-24 作者:Urban Scurry

我正在使用WP 3.4。当我试图将任何内容复制并粘贴到WordPress的帖子或页面编辑器中时,就会出现问题。每次我保存或尝试预览帖子时,都会出现这种情况。帖子被截断,大约65%的文本在帖子末尾被截断。如果我手动将内容输入文本框,然后预览或保存,则不会发生这种情况。

这在我的另一个WP站点上运行得很好,但在这个新安装上没有。我使用文本编辑器去除格式。我也在WordPress中使用了文本编辑器的复制和粘贴功能,但没有任何效果。

以下是一些背景。我首先通过Bluehost安装了WordPress 3.4。那是我发现问题的时候。然后我通过BlueHost重新安装了WP。这无助于解决问题。然后我下载了WordPress并将其上传到BlueHost,但问题仍然存在。

我试着使用20/10主题。然后我尝试使用Genesis框架主题。我还尝试将Genesis框架用于散文儿童主题。每次都会出现问题。我应该注意到,在尝试创建帖子时,所有插件都已关闭。

我没有链接到该网站,因为它正在建设中,唯一可用的帖子是手动输入文本编辑器并保存的,这不会造成问题。

下面是一个发生了什么的例子。我将此文本复制到文本框中。

我参与本地搜索引擎优化的时间已经够长了,我还记得我的老朋友本地商业中心。这项服务提供类似于本地目录网站的免费商业列表。我想这是个好主意<这些列表被谷歌用于本地搜索,这一事实使它们非常有用。如果你的本地网站有问题,在有机结果中排名这是天赐之物<在早期,仅仅是申请或建立一个列表就可以让你的企业登上谷歌搜索结果的第一页。对于许多小企业主来说,这往往是一种一成不变的局面
不费吹灰之力或不费吹灰之力,您就可以轻松登陆大多数市场的谷歌搜索结果首页。此外,对于许多试图登上谷歌搜索结果首页的网站来说,情况并非总是如此。

(全文见修订历史)

这是我保存或预览后剩下的内容。

“我参与本地搜索引擎优化的时间已经够长了,我还记得我的老朋友本地商业中心。这项服务提供了类似于本地目录网站的免费商业列表。我认为这是一个好主意。
这些列表被谷歌用于本地搜索,这一事实使它们非常有用。如果你的本地网站有问题,请在本周的有机结果中排名这是天赐之物<在早期,仅仅是申请或建立一个列表就可以让你的企业登上谷歌搜索结果的第一页。对于许多小企业主来说,这往往是一种一成不变的局面
不费吹灰之力或不费吹灰之力,您就可以轻松登陆大多数市场的谷歌搜索结果首页。此外,这不是“

小得多的帖子也会出现这种情况。

我已经在这个问题上工作了大约一周,可能需要任何可用的帮助。

3 个回复
SO网友:fuxia

您的浏览器不会将复制的UTF-8编码文本发送到服务器。在与UTF-8不兼容的第一个字符上,在您的示例中,撇号–\'–,到数据库的流被破坏,无法恢复。这是一个浏览器问题<如果非要我猜的话——嗯,我猜了,因为你没提到——我会说是Internet Explorer。

有两种方法可以解决这个问题。

获取更好的浏览器。

确保您尝试保存的所有内容都与UTF-8兼容。现在终于有机会提出这个问题了on topic 对于我们的网站:)

您可以筛选\'wp_insert_post_data\' 并准备好所有数据。以下代码应该作为插件使用(未测试,它只是一个原型)。

<?php
/* Plugin Name: Force UTF-8 */
add_filter( \'wp_insert_post_data\', \'wpse_56411_force_utf8\' );

function wpse_56411_force_utf8( $data ) 
{
    $out = array();
    foreach ( $data as $key => $value )
    {
        if ( ! seems_utf8( $value ) )
        {
            if ( function_exists( \'mb_convert_encoding\' ) )
            {
                $out[ $key ] = mb_convert_encoding( $value, \'UTF-8\', \'windows-1252\' );
            }
            elseif ( function_exists( \'iconv\' ) )
            {
                $out[ $key ] = iconv( \'windows-1252\', \'UTF-8\', $value );
            }
            else
            {
                $out[ $key ] = utf8_encode( $value );
            }
        }
        else
        {
            $out[ $key ] = $value;
        }
    }
    return $out;
}

SO网友:Frank Nocke

我也遇到了这个问题,第一个Umlaut(或者换句话说:第一个非ascii拉丁文字符,也就是第一个无效的unicode字符)在保存时被截断了。我使用的是Firefox 15,而不是IE。

根本原因:客户要求我提供latin1和(因此?)使用latin1数据库(又名ISO-8559-1,让我们跳过其中的细微之处)。

固定在wp-config.php 签署人:

定义(\'DB\\u CHARSET\',\'latin1\')//这一个最重要的定义(\'DB\\u COLLATE\',\'latin1\\u swedish\\u ci\')

SO网友:Urban Scurry

问题已解决。我在亚利桑那州的位置设置为UTC 7。当这种情况发生变化时,一切都起了作用。哇!谢谢你的帮助!

结束

相关推荐

用于添加工具提示的目标wp_EDITOR按钮

我有一个多作者网站,无论我对作者进行了多少教育,80%以上的人要么拒绝或忘记在帖子中使用标题,要么在单独的一行使用粗体文本来指定帖子的新部分。在我的战斗中,我想我应该尝试向B 在wp_editor 带有一个注释,简单描述何时使用和何时不使用B 以及何时使用Heading 相反我不确定这是否会对如何瞄准它产生影响,但我还应该注意,我使用wp_editor 在评论、用户配置文件的bio部分以及新帖子屏幕上的自定义元字段上。我已经使用-How to Add Reminders/Notes to New Post