`

截取处理UTF-8编码字符串

php 
阅读更多

PS:原创文章,如需转载,请注明出处,谢谢!     

本文地址:http://flyer0126.iteye.com/blog/1508695

 

/**
 * 截取处理UTF-8编码字符串
 * 规则:中文2个字符,数字、英文1个字符;截取末尾不足一个汉字的则舍弃。
 * @param string $str
 * @param int    $len 截取出的字符长度
 * @author flyer0126
 * @since 2012/05/03
 */
function substr_utf8_cn($str, $len)
{
	$length  = strlen($str);
	if ($length <=  $len)
	{
		return $str;
	}

	$result_str = '';
	for($i=0;$i<$len;$i++)
	{
		$temp_str=substr($str,0,1);
		if(ord($temp_str) > 127)
		{
			if($i+1<$len)
			{
				$result_str .= substr($str,0,3);
				$str = substr($str,3);
			}
			$i++;
		}
		else
		{
			$result_str .= substr($str,0,1);
			$str=substr($str,1);
		}
	}

	return $result_str;
}

//Useage:
$str1 = '截取处理字符串测试内容';
$str2 = '11aa22bb截取处理字符串测试内容';
$str3 = '#$%^截取处理字符串测试内容';

echo substr_utf8_cn($str1, 9, '...'),PHP_EOL;
echo substr_utf8_cn($str2, 9),PHP_EOL;
echo substr_utf8_cn($str3, 9);

//Outputs:
/**
截取处理
11aa22bb
#$%^截取
**/
 
分享到:
评论

相关推荐

    Patchwork UTF-8:处理UTF-8格式字符串的便携类库.zip

    Patchwork UTF-8是一个便携式C++类库,专门设计用于处理UTF-8编码的字符串。UTF-8是一种广泛使用的Unicode字符编码方案,能够表示Unicode标准中的所有字符,包括各种语言的字母、数字和符号。这个类库的出现是为了在...

    易语言判断UTF-8字符

    易语言是一种基于中文编程的程序设计语言,旨在降低编程门槛,让不懂英文的...通过学习和理解这段代码,你可以更好地掌握易语言处理UTF-8编码字符串的方法,并能将其应用到自己的项目中,提高程序的兼容性和健壮性。

    php 截取utf-8格式的字符串实例代码

    为了解决UTF-8编码字符串截取的问题,需要特别注意的是,UTF-8编码下的多字节字符在被截取时,必须同时保留字符的完整性。由于一个UTF-8编码的字符可能由1到4个字节组成,所以不能以字节为单位进行简单的截取操作。 ...

    以utf8格式截取的字符串编码

    在这个场景中,"以utf8格式截取的字符串编码"指的是在处理UTF-8编码的字符串时进行截取操作的方法和注意事项。 首先,我们要理解UTF-8编码的特点。UTF-8是一种变长编码,每个Unicode字符可能由1到4个字节来表示。...

    解析使用substr截取UTF-8中文字符串出现乱码的问题

    在处理UTF-8编码的中文字符串时,使用`substr`函数进行截取经常会遇到乱码问题。这是因为`substr`函数是基于字节的截取,而UTF-8编码的中文字符通常由多个字节组成。当`substr`不正确地处理这些多字节字符时,截取的...

    php截取utf-8中文字符串乱码的解决方法

    在处理PHP中的字符串时,尤其是涉及到UTF-8编码的中文字符串时,常常会遇到字符串被错误地截取,从而产生乱码的问题。这通常是因为UTF-8编码中,一个中文字符可能由多个字节组成,简单的按字节截取可能会将一个中文...

    PHP UTF-8 等宽度截取中英文字符.txt

    示例代码中定义了`u8_title_substr`函数,通过循环遍历字符串中的每个字符,根据字符的编码类型(1、2、3或4字节)累加相应的权重值,最终实现了等宽度截取UTF-8编码的中英文字符的功能。 #### 五、注意事项 - 在...

    PHP正确解析UTF-8字符串技巧应用

    php /* 程序功能,$str是中英文混合的UTF-8编码字符串, 将此字符串根据UTF-8的编码规则正确的解码并显示。 */ $str = ‘今天非常Happy,所有决定去KFC吃可乐鸡翅!!!’; /* $str 是待截取的字符串 $len 是截取的字符...

    PHP 不区分中英文截取utf8字符串

    PHP中,`substr()`函数是用于截取字符串的常用方法,但对UTF-8编码的字符串处理并不理想。要实现不区分中英文的截取,我们需要使用`mb_substr()`函数,它是PHP的多字节字符串处理函数,能处理各种字符编码,包括UTF-...

    ASP UTF-8编码下字符串截取和获取长度函数

    在ASP (Active Server Pages) 开发环境中,处理UTF-8编码的字符串时,通常需要特别注意,因为UTF-8是一种多字节字符编码,每个字符可能由1到4个字节组成。传统的字符串操作函数在处理UTF-8时可能会出现问题,比如...

    字符串按照指定的字节数来截取

    注意,由于字符可能由多个字节组成(如UTF-8编码中的多字节字符),因此截取字节时可能会截断字符。为了确保完整性,通常需要以字符边界进行截取,这可能需要借助于`codecs`库的`decode()`和`iterdecode()`等方法。 ...

    php_web项目中utf-8的问题.do

    然而,由于UTF-8编码下的中文字符占用三个字节,若截取不完整则会导致乱码或“?”的显示。为了解决这个问题,可以编写如下函数对标题进行安全截取: ```php function get_brief_str($str, $max_length) { if ...

    Carmela提供基于PHP,PHP扩展,JAVA,C++等语言的一套处理4四节UTF-8解决方案

    1. **字符串操作函数**:PHP提供了诸如`mb_string`、`iconv`等多字节字符串处理函数,用于正确处理UTF-8编码的字符串,包括拼接、截取、转换等操作。 2. **数据库交互**:在与MySQL、PostgreSQL等支持UTF-8的数据库...

    Objective-C中字符串操作总结

    - `initWithUTF8String:`:将UTF-8编码的C字符串转换为NSMutableString对象。 3. **修改字符串内容**: - `setString:`:替换原有内容。 - `appendString:`:在字符串末尾追加内容。 - `appendFormat:`:追加...

    C# 按照字节长度截取字符串

    例如,如果字符串是UTF-8编码,可以使用`Encoding.UTF8.GetBytes()`方法: ```csharp string str = "你好,世界"; byte[] bytes = Encoding.UTF8.GetBytes(str); ``` 接下来,我们要实现一个按照字节长度截取字符...

    截取指定长度的字符串

    而在一些其他语言中,如Java,可能需要先将字符串转换为特定的字符编码(如UTF-8)再进行截取。 在实际应用中,我们可能还需要考虑一些边缘情况,例如当截取的长度超过了字符串的实际长度,这时通常会返回整个字符...

    PHP中如何截取中文字符串

    中文字符串通常包含UTF-8编码的字符,这与ASCII编码的英文字符串处理方式有所不同。以下将详细讲解如何在PHP中正确截取中文字符串。 首先,我们需要了解UTF-8编码的特点。UTF-8是一种变长的字符编码,英文字符由一...

Global site tag (gtag.js) - Google Analytics