您的位置:首页 > 其它

WordPress中文摘要结尾乱码解决方法

2014-07-07 23:09 405 查看
文章摘要乱码现象一般是出现在文章正文结尾截断的地方,因为WordPress模板的默认字符集原先就是UTF-8,但是它对于英文来说是一
个字母一个字节(8位)来编码,而中文却是一个汉字三个字节(24位)来编码。

WordPress 显示摘要的时候,英文内容摘要往往可以正常显示,但是中文摘要在截断之后,通常往往会出现以两个类似于??, □□, 或者■■等乱码符号。所以文章摘要截断的函数只会 判断在多少字节的地方去截,如果到了那个地方一个汉字只显示了三分之一或者三分之二的时候,那么那个汉字就不能够完整的显示, 而函数又不能很智能的多截一个字节或者少截一个,怎么办呢?于是就导致了文章摘要产生了乱码。这个问题在很多有类似功能的国外模板上都会出现,这不是数据库的错,也不是字符集的问题,只是因为作者在编写模板的时候并没有考虑到中文字符可能产生的问题。

所以,需要手动修改截断的函数。

首先找到截断字符串的函数调用的地方,函数名是mb_strimwidth,该函数可以获取按指定宽度截断的字符串。我们可以在Eclipse里用全文搜索,即顶部的Search,然后File Search,找到调用的地方。有SSH登陆的同学可以直接grep找,更方便快捷.

grpe -r ‘mb_strimwidth’ .

一般能看到如下的语句:

<?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 330,”…”); ?>

末尾修改一下,增加,”utf-8″:

<?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 330,”…”,”utf-8″); ?>

保存之后乱码问题就解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: