对中英文字符串的长度的一点小解

字符串

          对中英文字符串的长度的一点小解  
                (jaklin   2000.8.9)
   
    常常有人问到中英文字符串的长度和判断问题, 因为在ASP和SQL7中英文也只占用一个字节。其实是很简单, 只是麻烦一点而已。
    一般来说对于中文和英文最大的区别在于它们的ASCII码不同, 因此可以通过它们的ASCII码来判别是不是英文, 并求出字符串的长度。中文的ASCII码值一般大于255。下面的函数是用于求中英文字符串的长度。

        function strlen(str)
            dim p_len
            p_len=0
            strlen=0
            if  trim(str)<>"" then
                p_len=len(trim(str))
                for i=1 to p_len
                    if  asc(mid(str,i,1))>255 then
                        strlen=int(strlen) + 2
                    else
                        strlen=int(strlen) + 1
                    end if
                next
            end if
        end function

时间: 2024-10-26 05:43:07

对中英文字符串的长度的一点小解的相关文章

在javascript中如何得到中英文混合字符串的长度

 本文为大家介绍下Javascript中如何得到中英文混合字符串的长度,下面有个不错的教程,感兴趣的朋友可以参考下 有同事在公司的OA上发了个贴子,介绍在javascript中如何得到中英文混合字符串的长度.    用的是正则表达式.     代码如下: var str = "坦克是tank的音译";  var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).leng

利用PHP函数计算中英文字符串长度的方法_php技巧

本文实例讲述了利用PHP函数计算中英文字符串长度的方法.分享给大家供大家参考.具体实现方法如下: 一般来说大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen(). 具体代码如下: 复制代码 代码如下: echo $str = 'PHP点点通';  echo strlen($str); //3*1+3*3=1

在javascript中如何得到中英文混合字符串的长度_javascript技巧

有同事在公司的OA上发了个贴子,介绍在javascript中如何得到中英文混合字符串的长度. 用的是正则表达式. 复制代码 代码如下: var str = "坦克是tank的音译"; var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ; 我查了一下书,有点明白了: 西文常用字符集由空格" "(0x20)到"~"

php 计算中英文混合字符串的长度

php 计算中英文混合字符串的长度 echo ccStrLen($str),'<hr>'; echo ccStrLeft($str,3); function ccStrLeft($str,$len) #从左边截取中英文混合字符串 { $ascLen=strlen($str);   if($ascLen<=$len) return $str; $hasCC=ereg("[xA1-xFE]",$str); #同上 $hasAsc=ereg("[x01-xA0]&

利用PHP函数计算中英文字符串长度

例子  代码如下 复制代码 echo $str = 'PHP点点通';   echo strlen($str); //3*1+3*3=12 echo mb_strlen($str, 'gb2312'); //3*1+3*2=9 echo mb_strlen($str, 'utf-8'); //6 可恶的是,mb系列的函数并不是PHP核心函数,默认没有开启的,还有一个超简单的方法,通过正则将字符串分解为字符个体,计算字符的个数即为字符串的长度:www.111cn.net  代码如下 复制代码 <?

utf-8-关于PHP截取中英文字符串的几个问题

问题描述 关于PHP截取中英文字符串的几个问题 function substr_len($str, $len, $charset='utf-8'){ $len = intval($len); if(!is_numeric($len) || $len < 0){ return false; } $str_len = strlen($str); if($len >= $str_len){ return $str; } if($charset == 'utf-8'){ $char_step = 3;

smarty中用truncate来截取中英文字符串及避免中文乱码问题

smarty中用truncate来截取含有中英文的字符串,可能会出现中文乱码问题.字符串截取长度不一问题,下面是新建个扩展函数,或修改原Truncate函数方法也可以的. 扩展smarty/plugins目录下自己新建一个文件,写个函数,修改后的smartTruncate: 文件名:modifier.smartTruncate.php  内容如下: <?php function smarty_modifier_smartTruncate($string, $length = 80, $etc =

使用C语言提取子字符串及判断对称子字符串最大长度_C 语言

先来看一个使用C语言从字符串中提取子字符串的基本方法总结: #include <stdio.h> /*处理中文字符*/ /*遍历字符串,非ASCII字符读取2个字节,ASCII读取一个字节,获取字符串长度*/ int StrLenU(const char* string) { int len = 0 ; const char* p = string; while(*p++ != '\0') { if(*p > 0x80 || *p < 0) { p++; } len++; } re

判断的条件是一个字符串的长度

条件|字符串 2004-10-810:49:42青 好好利用时间(f)wingc@SQL也不简单啊吴聪,请教一下sql中,如果判断的条件是一个字符串的长度,比如column1字段的长度是3,如"001"就能入选.这样的条件怎么写??我google it first了2004-10-810:50:37(f)wingc@SQL也不简单啊青 好好利用时间SQL Server中用len(字段名) = 3,试过没?2004-10-810:50:55青 好好利用时间(f)wingc@SQL也不简单