中文字符串截取乱码问题

1、问题描述

使用substr截取中文字符串,截取的部分乱码,英文就没有该问题

2、解决办法

Example :

1

2

3

<?php

$rest = substr ("abcdef", 1, -1); // returns "bcde"

?>

对于英文没有问题,我们测试一个中文

1

2

3

<?php

$rest = substr ("中国人", 1, -1); // returns "fdsafsda" 就是乱码了

?>

一、使用mbstring扩展库的mb_substr()截取就不会出现乱码了。

可以用mb_substr()/mb_strcut()这个函数,mb_substr()/mb_strcut()的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。

<?php

  echo mb_substr("php中文字符encode",0,4,"utf-8");

?>

发布了93 篇原创文章 · 获赞 9 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/bj123467/article/details/85102139
今日推荐