WordPress字数截断或搬家乱码问题解决方案

文章截断使用的是截取函数实现的地方,而WordPress模板的默认字符集是UTF-8,但是它对于英文来说是一个字母一个字节(8位)来编码,而中文却是一个汉字三个字节(24位)来编码。
代码是这样写的:

1
<?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 250,"..."); ?>

解决的办法有两个:
1、开启mb_string extension
如果你是自己的服务器,可以更改apache配置,可以将mb_string extension设置为on。
2、设置字符集
将代码加上UTF-8参数,代码就变成了:

1
<?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 250,"...",'utf-8'); ?>

这样就解决了这个WordPress中mb_strimwidth函数中文截断产生乱码的问题。

相关:
还有一种情况,就是WordPress网站搬家后导入数据,整站乱码,我用过一种方法解决掉了,在WordPress的根目录wp-config.php文件里面大概30行位置找到下面的代码。

1
2
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');

改成

1
2
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', '');

不指定编码。

发表评论

:?: :razz: :sad: :!: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :smile: :evil:
贴图 表情 ( ps. 若要贴代码, 请將 "<" 改成 "&lt;" 即可. )

4 + 8 = ?

这篇文章上的评论的RSS feed TrackBack URL