php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
在PHP中,使substr函数截取字符串末位会出现乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位不准确,造成断开的字符会把其后的..拉过来一起做一个字,所以出现了乱码。
substr --- 取得部份字符串语法 : string substr (string string, int start [, int length])
说明 :
substr( )传回 string的一部份字符串,由参数 start和 length指定。
如果 start是正数,传回的字符串将会从 string的第 start个字元开始。
Example :
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>
如果 start是负数,传回的字符串将会从 string结尾的第 start个字开始。
Example :
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>
如果有给予参数 length而且是正数时,传回的字符串将会从 start传回 length个字元。
如果有给予参数 length而且是负数时,传回的字符串将会结束于 string结尾的第 length个字元。
Example :
$rest = substr ("abcdef", 1, -1); // returns "bcde"
?>
dongyue,2005-01-07 11:10:41
substr --- 取得部份字符串
语法 : string substr (string string, int start [, int length])
说明 :
substr( )传回 string的一部份字符串,由参数 start和 length指定。
如果 start是正数,传回的字符串将会从 string的第 start个字元开始。
Example :
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>
如果 start是负数,传回的字符串将会从 string结尾的第 start个字开始。
Example :
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>
如果有给予参数 length而且是正数时,传回的字符串将会从 start传回 length个字元。
如果有给予参数 length而且是负数时,传回的字符串将会结束于 string结尾的第 length个字元。
Example :
$rest = substr ("abcdef", 1, -1); // returns "bcde"
?>
Utf-8、gb2312都支持的汉字截取函数
//截取中文字符串
/*
Utf-8、gb2312都支持的汉字截取函数
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8
开始长度默认为 0
*/function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa ="/[\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]/";
preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = ''; for($i=0; $i
{
if($i>=$start && $i
{
if(ord(substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)
return $tmpstr;
}
}
$str="脚本之家一个不错的网站";
echo cut_str($str, 8, 5, 'gb2312');
php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]相关推荐
- PHP用substr截取字符串出现中文乱码问题用mb_substr
PHP用substr截取字符串出现中文乱码问题用mb_substr 实例:mb_substr('截取中文乱码问题测试',0,5, 'utf-8'); 语法 : string substr (strin ...
- ASP如何计算中英文混合字符串长度和截取字符串
用ASP做网站的时候经常会碰到要截取字符串的情况.ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际 ...
- python string indices must be_Python解析json时提示“string indices must be integers”问题解决方法...
本文实例讲述了Python解析json时提示"string indices must be integers"问题解决方法.分享给大家供大家参考,具体如下: import json ...
- utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件
utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件 参考文章: (1)utf-8编码的中文注释 在 sourceinsight 显示乱码的解 ...
- vue截取一个字符串_vue如何截取字符串
在后端有许多的封装方法来截取字符串或者对字符串的操作,同样前端也有相应的方法. 有一个data数据为ipaddr data() { return { ipaddr: "192.168.100 ...
- java中截取部分字符串_JAVA中截取字符串substring用法详解
substring public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串.该子字符串始于指定索引处的字符,一直到此字符串末尾. ...
- java截取倒数后六位的字符串_JAVA中截取字符串substring用法详解
substring public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串.该子字符串始于指定索引处的字符,一直到此字符串末尾. ...
- python中字符串切片取奇数_Python中的字符串切片(截取字符串)的详解
Python中的字符串切片(截取字符串)的详解 字符串索引示意图 字符串切片也就是截取字符串,取子串 Python中字符串切片方法 字符串[开始索引:结束索引:步长] 切取字符串为开始索引到结束索引- ...
- iOS NSString 字符串处理:截取字符串、匹配字符串、分隔字符串
为什么80%的码农都做不了架构师?>>> 1,截取字符串 NSString*string =@"aaabbbccc"; string = [string s ...
最新文章
- 关于MNIST数据集的处理
- !--处理:借款冲销不自动冲减预算--
- android R文件丢失
- Upma Xmac 测试 03
- oracle的学习笔记(转)
- arp linux 清空_Linux怎么清理ARP缓存
- Winform 下拉框绑定问题
- 移动硬盘上安装Windows 10系统
- SecureCRT资源下载安装
- 机房搬迁实施规划方案
- 现代内衣百年:性感无罪,无尺码也不是终局
- linux 帝国cms 刷新,帝国cms怎么自动刷新网站首页?(帝国CMS自动刷新首页的方法)...
- 敏感性分析—Sobol
- 数据科学之 如何找到指标的最 佳分裂点的几个想法
- matlab使用hough变换函数进行车道检测
- VASP计算笔记_弹性常数计算
- 融资150万,用户超过1500万,“护眼宝”要如何完成从工具到平台的转变?
- 需求分析挑战之旅(疯狂的订餐系统)(7)——变被动为主动
- SwiftUI教程第1章第20:加载Web图片
- 【SQL】SQL Server基础语法
热门文章
- 测试公众号修改名称_微信公众号开通个人认证,只需三步
- VTK修炼之道33:边缘检测_Sobel算子
- Ajax里的onreadystatechange的作用
- 高级C语言教程-存储器和指针
- 一文看懂NumPy的切片中常用的冒号
- LIVE555再学习 -- live555实现RTSP直播服务器 分析
- zcmu2165(分组背包)
- OpenCV4.0+VS2017完整安装配置过程(详细!)
- @RequestParam注解详解
- bluemix java_Bluemix 基础:将 SQL 数据库添加到您的 Java 应用程序中