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
#$%^截取
**/
分享到:
相关推荐
php /* 程序功能,$str是中英文混合的UTF-8编码字符串, 将此字符串根据UTF-8的编码规则正确的解码并显示。 */ $str = ‘今天非常Happy,所有决定去KFC吃可乐鸡翅!!!’; /* $str 是待截取的字符串 $len 是截取的字符...
在PHP中截取UTF-8编码的字符串时,有可能碰到半字符的问题,也就是乱码,以下函数可以解决这个问题
我们知道有时候使用substr来截取UTF-8中文字符串的时候,经常会出现乱码,为什么会出现这样的问题呢,本文告诉你答案。看这样一段代码吧(字符编码为UTF-8): 复制代码 代码如下:<?$str = ‘都知道strlen与mb_...
php 截取utf-8格式的字符串 php中,我们经常需要截取字符串。英文字符占用一个字节,中文字符占用两个字节,但中文字符占用两个字节是相对于GBK编码而言但是在时下国际流行的UTF8编码中,一个中文字符占用3个字节。...
复制代码 代码如下://截取字符串长度。支持utf-8和gb2312编码...=’utf-8′){//总是将字符串转为utf-8编码 $str=iconv($code,’utf-8′,$str); } $str_len=mb_strlen($str,’utf-8′);//字符串的长度 if($from>$str_le
截取文字长度函数,支持UTF-8 ,这样就可以满意大部分截取字符串的朋友了。
Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的编码来处理。下面话不多说了,来一起看看详细的介绍吧 例子:1 string msg= Encoding.UTF8....
在使用Pyserial与STM32进行通讯时,遇到了...# -*- coding: utf-8 -*- import binascii #16进制整数转ASCii编码字符串 a = 0x665554 b = hex(a) #转换成相同的字符串即'0x665554' b = b[2:] #截取掉'0x' c = binascii
将Gb2312编码的字符串转换为utf-8。判断是否有非法字符。分割字符串。检测含中文字符串实际长度。截断字符串,如果str 的长度超过 need,则提取 str 的前 need 个字符,并在尾部加 “...”。将字符串中的html代码...
//utf-8编码的字符串echo mb_substr($str, 0, 2, ‘utf-8’); //输出 我a[/code 中英混合也完全没有问题。 友情提示 使用的时候要注意php文件的编码,和网页显示时的编码。 使用这个mb_substr方法要事先知道字符串...
先来看个例子: #-*- coding:utf8 -*- ...在查找 UTF-8 编码资料时发现,很多的帖子说的 UTF-8 编码里,一个汉字占用3个字节,有的还做了个证明,大概是这样的,创建一个没有BOM的UTF-8编码的文本文件,里面保
常见的 PHP 截取字符串函数整理,支持gb2312和utf-8编码,方法php开发中需要用到截取字符串的问题。
google了下,找到一个discuz中截取各种编码字符的类,改造了下,已经测试通过.其中参数$charset 只支持gbk与utf-8。 复制代码 代码如下:$a = “s@@你好”;var_dump(strlen_weibo($a,’utf-8′)); 结果输出为8,其中...
在PHP中,字符串截取函数是一个基本的函数,但是它不能正确地处理中文字符串,因为中文字符串在UTF-8编码中占用多个字节,而PHP的截取函数只能截取固定长度的字符串,无法正确地截取中文字符串。因此,需要开发一个...
在项目开发中,我们常常会遇到英文、中文等字符串截取问题,比如说新闻列表页面需要...$charset=”utf-8″:字符编码,默认UTF-8 $suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示 */
现在假设一串输入为UTF8编码,如何能准确的定位到每个UTF8字符的“CharPoint”,而不会错误的分割字符呢? 参考这个页面:http://www.nubaria.com/en/blog/?p=289 可以改造出下面的函数: const unsigned char ...
php在UTF-8编码下,一个汉字占3个字符,gbk编码下只占2个字符。 字节(Byte): 字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。 应用: 如果数据库中表为UTF8编码,则其中字段设置为最长10位字符,则最多...
最近在处理游戏敏感词之类的东西,为了加强屏蔽处理,所以需要过滤掉字符串中的除汉字之外的是其他东西如数字,符号,英文字母等。 首先我查阅资料并写了个函数: 示例:返回输入字符串中汉字的个数: std::string ...