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', ''); |
不指定编码。