php substr截断汉字乱码解决办法
发布:smiling 来源: PHP粉丝网 添加日期:2014-01-06 11:09:29 浏览: 评论:0
在php中substr是用来截取字符的,但是有朋友会发现把它来截英文字母是没有任何问题,但是如果截中文时会出现半个汉字乱码了,下面我来介绍一些解决办法.
substr() 函数返回字符串的一部分。
语法:substr(string,start,length)
实例代码如下:
- <?php
- echo substr("Hello world!",6);
- ?>
输出 world!
实例代码如下:echo substr('中国文',1);
结果就是筹码了,后来才知道中文与英文的区别在于内编码了,一个网站这样说到substr函数在截取字符时是按字节来截取的,中文字符在GB2312编码时为2个字节,utf-8编码时为3个字节,所以截取指定长度的字符串时如果截断了汉字,那么返回的结果显示出来便会出现乱码.
解决办法:1、利用mb_substr来截取,代码如下:
- <?php
- $str = '这样一来我的字符串就不会有乱码^_^';
- echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8');
- //结果:这样一来我的字
- echo "<br>";
- echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
- //结果:这样
- ?>
但是如果要使用mb_substr截取我们需要使用使用mbstring扩展库,如果没有权限的朋友我们就可参考下面函数,代码如下:
- function msubstr($str, $start, $len) {
- $tmpstr = "";
- $strlen = $start + $len;
- for($i = 0; $i < $strlen; $i++) {
- if(ord(substr($str, $i, 1)) > 0xa0) {
- $tmpstr .= substr($str, $i, 2);
- $i++;
- } else
- $tmpstr .= substr($str, $i, 1);
- }
- return $tmpstr;
- }
Tags: substr 截断 汉字乱码
- 上一篇:php实现中文文件名文件下载
- 下一篇:php获取复选框的值代码
相关文章
- ·php substr()函数截取中文字符串乱码(2014-01-18)
- ·php mb_substr实现中文字符串截取无乱码的方法(2014-09-12)
- ·php rtrim(),substr()删除字符串最一个字符(2014-09-18)
- ·PHP substr()截取字符串时,中文出现乱码的问题解决(2014-09-21)
- ·PHP中使用substr()截取字符串出现中文乱码问题该怎么办(2021-06-20)
- ·php截断带html字符串文章内容的方法(2014-01-12)
- ·PHP中UTF8中文字符截断程序代码(2014-07-31)
- ·php使用iconv中文截断问题的解决方法(2021-05-11)
- ·php ajax交互汉字乱码的问题解决方法(2013-12-19)
- ·PHP中get获取url汉字乱码解决办法(2014-01-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)