`
mengdejun
  • 浏览: 408348 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

UTF-8下面截取中文字符。

    博客分类:
  • Php
PHP 
阅读更多
<?php
//支持中文的substr(string,length[,start])
//“反斜杠”被博客系统过滤了,请在每个 x 前面添加“反斜杠”
function cnsubstr($l1,$l2,$l3=0){
    $I2 = "/[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($I2,$l1,$I3);
       if (count($I3[0]) - $l3 > $l2) {
           return implode('',array_slice($I3[0],$l3,$l2))."...";
       }
       return implode('',array_slice($I3[0],$l3,$l2));
}
//计算中文字符长度
function len($l1){
    $I2 = "/[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($I2,$l1,$I3);
       return count($I3[0]);
}
?>

 

分享到:
评论

相关推荐

    易语言判断UTF-8字符

    4. **字符串处理技巧**:在易语言中,可以结合其他字符串处理函数,如`取字符串长度`、`截取字符串`等,配合`IsTextUTF8`来实现更复杂的文本操作,例如将非UTF-8字符串转换为UTF-8,或者从UTF-8字符串中提取特定部分...

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

    对于UTF-8编码的字符串来说,由于不同字符(如中文、英文等)在UTF-8编码下占用的字节数不同,简单的按字节长度进行截取往往会导致乱码或者截取不准确。因此,需要一种能够等宽度截取中英文字符的方法。 #### 二、...

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

    4. **字符串操作**:包括查找、替换、截取等基本字符串操作,这些操作都考虑到UTF-8的特性,确保不会破坏多字节字符。 5. **错误处理**:在进行操作时,该库会提供详细的错误报告,帮助开发者追踪和修复编码问题。 ...

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等 oracle汉字转拼音package_获得全拼—GBK—拼音首字母_拼音截取 oracle汉字转拼音package_获得全拼—UTF8—拼音首字母_拼音截取 还实例。

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

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

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

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

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

    但是,在当下普遍采用的UTF-8编码中,一个中文字符可能会占用3个字节。这意味着在截取字符串时,不能简单地使用基于字节的函数,如`substr()`,因为这样的处理方式会导致字符串被错误地截断,从而造成乱码。 为了...

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

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

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

    这通常是因为UTF-8编码中,一个中文字符可能由多个字节组成,简单的按字节截取可能会将一个中文字符切分成两半,导致乱码的出现。这种现象尤其容易出现在使用标准的PHP字符串截取函数substr()时,因为它没有考虑到...

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

    本篇文章将深入探讨如何在PHP中正确解析UTF-8字符串,这对于处理包含中文、英文以及其他语言字符的文本数据来说尤其重要。 首先,我们需要了解UTF-8编码的基本规则。UTF-8是一种变长编码,每个Unicode字符可以用1到...

    PHP中如何截取中文字符串

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

    php自定义截取中文字符串-utf8版

    本篇主要介绍如何自定义截取UTF-8编码下的中文字符串。 在UTF-8编码中,一个中文字符通常由3个字节组成,而英文字符、数字或一些特殊符号只占1个字节。因此,常规的字符串截取函数(如`substr()`)在处理中文字符串...

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

    UTF-8是一种广泛使用的Unicode字符编码,它可以表示世界上几乎所有的字符集,包括中文、英文、日文等。在编程中,正确处理UTF-8编码至关重要,因为它确保了不同语言文字的正确显示。 描述中提到"基于php的系统",这...

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

    在PHP编程中,处理UTF-8编码的字符串时,由于UTF-8是一种多字节的字符编码,中文和英文字符的长度是不一致的。在进行字符串截取时,如果不考虑编码特性,可能会导致截取结果错误。这篇博客“PHP 不区分中英文截取utf...

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

    传统的字符串操作函数在处理UTF-8时可能会出现问题,比如截取字符串长度和计算字符串长度。这里介绍的两个自定义函数,`Cut_Title` 和 `StrLen`,就是为了在ASP环境下正确处理UTF-8编码的字符串而设计的。 `Cut_...

    php smarty截取中文字符乱码问题?gb2312/utf-8

    GB2312编码的中文字符占用两个字节,而UTF-8编码的中文字符可能占用三个或更多字节。如果页面的编码方式和数据的编码方式不匹配,就容易出现乱码。 为了解决这个问题,可以编写自定义的modifier来替代truncate修饰...

    impala中substr()截取中文字符串乱码的问题

    这是因为这两个函数在设计时可能没有充分考虑多字节字符集,如UTF-8,而中文字符在UTF-8编码下通常由多个字节组成。 当使用`substr()`或`substring()`截取中文字符串时,如果截取的起始位置和长度没有正确地对齐到...

Global site tag (gtag.js) - Google Analytics