转载来源链接: http://blog.csdn.net/hueise_h/article/details/22920937 php的strlen和mb_strlen用于统计字符个数.中英文混合的字符串中的中文字符则没有统计进来.所以得自己另想方法统计中英文混合的字符串的字数.以下是我的方法:先用正则表达式把所有中文替换为空格,就可以用strlen()统计总字数了,总字数就是中文字数与英文字数的总和.这里的讨论都是在utf-8编码情况下.统计中文字数并把所有中文替换为空格的正则表达式: [php…
转载请注明来源:https://www.cnblogs.com/hookjc/ function isChinese(str) {    var lst = /[u00-uFF]/;           return !lst.test(str);       } function strlen(str)  { var strlength = 0; for (var i=0; i < str.length; ++i) { if (isChinese(str.charAt(i)) == true)…
function ccStrLen($str) #计算中英文混合字符串的长度 { $ccLen=0; $ascLen=strlen($str); $ind=0; $hasCC=ereg("[xA1-xFE]",$str); #判断是否有汉字 $hasAsc=ereg("[x01-xA0]",$str); #判断是否有ASCII字符 if($hasCC && !$hasAsc) #只有汉字的情况 return strlen($str)/2; if(!$…
1.字符串长度 中文字符串使用strlen() 获取字符串长度时一个UTF8的中文字符是3个字节长度:使用mb_strlen(),选定内码为UTF8,则会将一个中文字符当作长度1来计算 在对含中文字符串截取时 $str = "this你看我哪里像好人"; echo substr($str,4,4);//输出值为:你� echo mb_substr($str,4,4,'UTF-8');//输出值为:你看我哪 echo mb_strcut($str,4,4,'UTF-8');//输出值为:…
平时在作数据库插入操作时,如果用 INSERT 语句向一个varchar型字段插入内容时,有时会因为插入的内容长度超出规定的长度而报错. 尤其是插入中英文混合字符串时,SQL Server中一般中文要占两个字节,所以对混合型的字符串就要作一个处理,统一按字节长度来计算字符串长度,方法如下: C#方法一: public static string GetString(string str, int len) { string result = string.Empty;// 最终返回的结果 int…
参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度) utf8sub(,) = 好1世界哈 utf8sub(,) = 你好1世界 utf8sub(,) = 你好世界1 utf8sub(,) = utf8sub(,) = pø你好p 错误方法 网上找了一些算法, 都不太正确; 要么就是乱码, 要么就是只考虑了4 byte 中文的情况, 不够全面 1. string.sub(s,1,截取长度*4) 网上很多直接使用"`&qu…
今天学习了php函数截取中文字符串,英文字符串,中英文字符串的函数使用方法.对中英文截取方法不理解,此处先做记录. PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节.例: $enStr = ‘Hello,China!’;echo strlen($enStr); // 输出:12 而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8.utf-8能兼容更多的字符,所以受到很多站长的喜爱.gbk与u…
网站制作过程中,提示层文字超出,需要JS做字符串截取,但是呢,我们常常会烦恼文字中英文混合如何判断,因为我们知道在JS中 string.length这个值是不考虑中英文的,但是计算机对中英文的识别是 中文占2个字符,英文一个字母占一个字符(包括数字).查阅相关资料后,最近找到一个好的办法解决此问题. 分析下逻辑,比如我们要对字符串截取10个字(英文就是20个字符),创建一个函数 view plaincopy to clipboardprint? function SetSub(str,n){ /…
public class StringHelper     {         public static string GetSubString(string str, int len)         {             string result = string.Empty;// 最终返回的结果             int byteLen = System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度          …
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: 对于字符串的截取,truncate函数只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,一个中文的长度大致相当于两个英文的长度.此外,truncate不能同时兼容GB2312.UTF-8等编码. 解决方法:自…