中文截取字符串

echo mb_substr("我abc的名字是肖岩",0,7,‘utf-8‘)."<br>";//我abc的名字
echo mb_strcut("我abc的名字是肖岩", 0,9,‘utf-8‘);//我abc的

其中mb_substr中的第三个参数代表字符个数,mb_strcut函数中的第三个参数代表字符数,utf-8编码下汉字3个字符

还可以使用自定义函数截取,不过没有上述的好用

function GBsubstr($string,$start,$length){
    if (strlen($string)>$length) {
        $str=null;
        $len=strlen($string);
        for ($i=0; $i <$len ; $i++) {
            if (ord(substr($string, $i,1))>0xa0) {
                $str.=substr($string, $i,2);
            }else{
                $str.=substr($string, $i,1);
            }
        }
        return $str;
    }else{
        return $string;
    }
}

ord()函数是根据字符返回相应的ASSIC码,跟chr()函数相反

时间: 2024-10-06 22:47:37

中文截取字符串的相关文章

网上找的JS截取字符串(含中文)

<script> /* 2007-11-28 XuJian */ //截取字符串 包含中文处理 //(串,长度,增加...) function subString(str, len, hasDot) { var newLength = 0; var newStr = ""; var chineseRegex = /[^\x00-\xff]/g; var singleChar = ""; var strLength = str.replace(chines

js获取(包括中文)字符串长度与截取字符串

/** * @param begin 截取开始的索引 * @param num 截取的长度 */ //截取字符串(包括中文) function SetString(str, len) { var strlen = 0; var s = ""; for (var i = 0; i < str.length; i++) { var m = str.charAt(i).match(/[^\x00-\x80]/g);//利用match方法检索出中文字符并返回一个存放中文的数 if (m!

获得字符串实际长度,中文2,英文1 js截取字符串,中英文都能用

var GetLength = function (str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCo

包含中文的字符串中截取前N个字符

package com.wangzhu.string; import java.io.UnsupportedEncodingException; public class SubStringDemo1 { public static void main(String[] args) throws UnsupportedEncodingException { String str = "我是j好abc"; String charset = "UTF-8"; print

PHP中的中文截取乱码问题_gb2312_utf-8

一.字符串编码为gb2312,一个中文占俩字节 ? public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串长度         $strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度         for($i = $start; $i < $strlen;) {            

PHP实现中文截取无乱码

字符串的处理是编程中比较常见的,各种编程语言对字符串的处理也提供了大量函数,像php中mb_substr()函数可以实现对中文字符串的截取,如何使用自定义方法实现中文字符串截取无乱码这也是面试经常遇到的一道题目,不要觉得这是多此一举,php内置函数已经实现了,为什么要自己实现.其实这道题的真实目的是考查你对字符编码的理解.最起码你要知道从哪里开始截取,截取几个字节才是一个完整的字符,不然截取到的都是乱码.这就需要你对多字节字符编码有一定的了解.下面一起来实现吧. 1 <?php 2 /** 3

Java机试题目_怎样截取字符串

面试题1  怎样截取字符串 考题题干 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个". 试题分析 本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这

C#截取字符串

public class SubStrHelper { /// <summary> /// 截取字符串长度,中文二字节 /// </summary> /// <param name="str"></param> /// <param name="length">字节长度</param> /// <returns></returns> public static strin

smarty截取字符串与过滤HTML标签

用truncate截取文字时如果内容读出出现样式错误,首先看是否因有HTML中标签的css样式,使用 |strip_tags过滤. truncate用法: {$item.content|strip_tags|truncate:60:"...":true} $item.content是要过滤的内容,strip_tags的作用是过滤从数据库读出的内容里含有HTML标签的信息,truncate:60:"...":true表示要截取显示的内容,60表示截取内容的大小,&qu