php截取中文字符串乱码问题

一般情况下说到截取字符串我们都会想到substr

然而substr对英文字符串有不错的效果,但是中文可能就会报出各种各样的问题:

所以,我们要采用mb库里面的substr,也就是mb_substr();

不一样的是这个函数后边要规定好你最终的字符串格式

mb_substr(要截取的字符串,从第几个开始截取,截取几位,规定字符形式);

比如:

原文地址:https://www.cnblogs.com/findher/p/10610269.html

时间: 2024-08-09 19:33:49

php截取中文字符串乱码问题的相关文章

php截取中文字符串无乱码的方法

利用php内置方法mb_substr截取中文不乱码,使用起来非常简单 <?php $str = '我喜欢laravel or yii2'; echo mb_substr($str, 0, 1, 'utf8'); //输出 我 exit; mb_substr方法比substr多一个参数,用来指定字符串编码.utf-8编码截取示例 $str = '我like laravel or yii2'; echo mb_substr($str, 0, 2, 'utf8'); //输出 我I 中英混合也完全没有

PHP截取中文字符串方法总结

PHP截取中文字符串有时会出现乱码 使用一下三种方式解决乱码: <?php @header('Content-type: text/html; charset=UTF-8'); $arr = "sa撒的发dfa多少sfd看sdf得12上24飞452机[email protected]$#^辣^&%椒粉b"; /****************************************************************** * 程序一:PHP截取中文字符

PHP截取中文字符串不出现?号的解决方法[原创]

PHP截取中文字符串不出现?号的解决方法[原创] 大 | 中 | 小 [不指定 2007-8-15 18:51 | by 张宴 ] [文章作者:张宴 本文版本:v1.0 最后修改:2007.08.15 转载请注明出处:http://blog.zyan.cc] 当PHP截取中英文混合字符串时,最后一个汉字经常被拆成两半,例:截取字符串的前18个字 view plainprint? <?php $text = "1欢迎访问sina新浪播客"; $value = substr($tex

php中计算中文字符串长度、截取中文字符串

在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. header

自定义一个函数截取中文字符串

/** * 截取中文字符串 * @param unknown $str 要截取的字符串 * @param unknown $encode 字符编码 * @param unknown $start 开始位置 * @param string $len 要截取的长度 * @return string */function getStr($str,$encode,$start,$len=null){ switch ($encode) { case 'utf8':$num = 3;break; case

php截取中文字符串,英文字符串,中英文字符串长度的方法

今天学习了php函数截取中文字符串,英文字符串,中英文字符串的函数使用方法.对中英文截取方法不理解,此处先做记录. PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节.例: $enStr = ‘Hello,China!’;echo strlen($enStr); // 输出:12 而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8.utf-8能兼容更多的字符,所以受到很多站长的喜爱.gbk与u

thinkphp模板中截取中文字符串的方法分享

前段用thinkphp写了一个系统,感觉thinkphp学起来比较容易,开发起来了比较顺手,其中一个关键的因素就是它的模版引擎相当强大,使用方法跟smarty类似,在模版中还可以用php代码,有模版包含.继承的等很多好的功能…… 但是我发现thinkphp在模版函数中,没有中文字符串的截取函数,有个substr可以截取,但是不是基于中文的,当使用utf8编码的时候,由于3个字符代表一个中文,如果想截取的内容混杂中文/数字/英文字符串的时候就会出问题,最后一个字符很有可能混乱,这个问题很头大.于是

php截取中文字符串 GB2312 utf-8

UTF-8截取中文字符串 function Cn_Substr($string, $length) { preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/&q

lazarus Textout中文字符串乱码

https://wenda.so.com/q/1560151974218812 lazarus Textout中文字符串乱码 5取nmlgb10级分类:编程开发被浏览146次2019.06.10 检举 我用Textout在窗口输出 '你好'系统却显示其它字体,求懂内行的帅哥美女指教一下,这是我的代码 TextOutA(hdcb,100,100,'你好',4);显示的却是图片上的字 满意答案 whoami1978来自团队:快乐助人 乐帮达人采纳率:84%50级 2019.06.10 因为lazar