我的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方法是问题。
有人试图破译这个吗?
答案 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。