黑钻/问号替换WordPress

时间:2015-12-16 23:12:23

标签: php mysql wordpress

我的WordPress网站是通过在OpenOffice Calc中创建CSV导入的,保存为Unicode(UTF-8)以保留韩文字符。导入的帖子内容没有任何重大打嗝,但在前端渲染似乎有问题。

我想在哪里显示限制为200个字符的帖子的摘录,我使用的是: -

<?php  
    $content = strip_tags(get_the_excerpt());
    echo substr($content,0,200);
    echo '...';
?>

这应该是这样的: -

some korean characters, pretend this is 200 characters...

它的作用,在大约50%的情况下。在其他人中,我在省略号之前得到了带有白色问号符号的可怕黑色钻石。

但是,如果我不使用strip_tags方法,我希望在同一个地方看到diamon符号 - 但我没有。奇怪的是,这个确实出现在除外的帖子,不要在完整的帖子页面上显示钻石符号。

Wp-config的'DB_CHARSET'值'utf8mb4'。 MySQL数据库表及其列显示排序规则为'utf8mb4_unicode_ci'。这是问题吗?我怎么能纠正这个?

在查看wp_posts表时,当我查看特定帖子的内容时,我看不到菱形符号,这些帖子似乎在其摘录中显示此字符。

此外,如果我编辑一个有这个问题的帖子,并从大约190-210个字符复制字符并在开头粘贴,我仍然只看到省略号之前的菱形符号 - 这让我觉得strip_tags方法是问题。

有人试图破译这个吗?

1 个答案:

答案 0 :(得分:0)

我总是在我的.htaccess文件中添加以下内容。我不确定它是如何工作的,我发现它在网上某个地方,它解决了我的问题,所以我一直在使用它。

# USE UTF-8
php_value mbstring.language             neutral
php_value mbstring.internal_encoding    utf-8
php_value mbstring.encoding_translation on
php_value mbstring.http_input           auto
php_value mbstring.http_output          utf-8
php_value mbstring.detect_order         auto
php_value mbstring.substitute_character none
php_value default_charset               utf-8

我想我还必须在代码入口点的最开头添加它:

if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}

这对我来说都是希腊语,但似乎解决了我对unicode的担忧。另外,我总是在每个文本字段中创建我的mysql排序规则utf8_general_ci。