最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

php实现中文字符串截取无乱码

来源:动视网 责编:小采 时间:2020-11-27 15:20:29
文档

php实现中文字符串截取无乱码

php实现中文字符串截取无乱码:在PHP中经常使用substr来进行字符串的截取,但是当我们用它来实现对中文字符进行截取的时候则会发生乱码问题,比如说:(推荐学习:PHP编程从入门到精通)<php $mystring="今天天气真好"; $mysubstring=substr($mystri
推荐度:
导读php实现中文字符串截取无乱码:在PHP中经常使用substr来进行字符串的截取,但是当我们用它来实现对中文字符进行截取的时候则会发生乱码问题,比如说:(推荐学习:PHP编程从入门到精通)<php $mystring="今天天气真好"; $mysubstring=substr($mystri

在PHP中经常使用substr来进行字符串的截取,但是当我们用它来实现对中文字符进行截取的时候则会发生乱码问题,比如说:(推荐学习:PHP编程从入门到精通)

<?php
$mystring="今天天气真好";
$mysubstring=substr($mystring,0,2);
echo $mysubstring;
?>

输出结果为?;

原因分析:substr函数原型为:string substr ( string $string , int $start [, int $length ] ),其中$length表示返回字节长度,而一个中文占两个字节,对于一个UTF-8的中文字符,会把它当做3个字节来处理。

<?php
$length=strlen($mystring);echo $length;//
输出结果为18 ?>

也就是说我们可以用令$length为3,这样就会成功返回一个“今”字。这样的话如果中文和英文混杂的话则需要我们好好地计算一下$length了。

那么有更好的解决办法吗?

Php给出了另外的函数mb_strlen和mb_substr

<?php
$length=mb_strlen($mystring);
$mysub=mb_substr($mystring,0,4);
echo "the length is:$length,","the substr is:$mysub";
?>

输出结果为:the length is:6,the substr is:今天天气

mb_strlen函数原型为int mb_strlen(string string_input, string encode);encode默认为UTF-8,它会将为UTF-8编码的中文字符算作一个

注意:mb_strlen与mb_substr并不是PHP的核心函数,使用前需要打开php.ini中的extension=php_mbstring.dll这一项

文档

php实现中文字符串截取无乱码

php实现中文字符串截取无乱码:在PHP中经常使用substr来进行字符串的截取,但是当我们用它来实现对中文字符进行截取的时候则会发生乱码问题,比如说:(推荐学习:PHP编程从入门到精通)<php $mystring="今天天气真好"; $mysubstring=substr($mystri
推荐度:
标签: php 截取 字符串
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top