PHP计算中英混输字符串长度】的更多相关文章

最近做项目中碰到需要post value length check的这么一个情况 有这么一个需求, 需要backend来处理post过来的中英混输的数据. 对其限制的规则是中文10个字符, 英文20个字符. 中英混输的话遵循上面所说的规则. so... <?php function compact_strlen($str){ return (strlen($v) + mb_strlen($v,'UTF8')) / 2; } ?>…
注:本文为小编原创,如若转载,请注明出处:http://blog.csdn.net/u012116457/article/details/42536039 今天正式开始学习PHP了,不过小编一不小心就发现了一个使用PHP时需要特别注意的地方. 如这个例子: <html> <meta charset="utf-8"> <body> <?php $name="鸣人"; print "姓名的长度为:".strl…
PHP内置的字符串长度函数strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数.对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节). <html> <meta charset="utf-8"> <body> <?php $name="鸣人"; print "姓名的长度为:".mb_str…
在使用hibernate注解修饰字符串长度时,如果一开始没有把String类型的变量长度设计好,在网数据库插入数据时,容易造成字段长度超出错误,这时候需要修改@Column里length的大小.如果使用的是自动建表hibernate.hbm2ddl.auto=update,那么在修改完持久化类里@Clomun(length="2048")后,需要在mysql里面再修改一次length.借助于Navicat for Mysql,只需打开相应的表设计就行了. 简单来说. 第一步:修改@Co…
最近在建词典,使用Trie字典树,需要把字符串分解成单个字.由于传入的字符串中可能包含中文或者英文,它们的字节数并不相同.一开始天真地认为中文就是两个字节,于是很happy地直接判断当前位置的字符的ASCII码是否处于0~127之间,如果是就提取一个字符,否则提取两个.在测试分字效果的时候,这种方法出了问题.比如我传一个"abcde一二三四五"进去,abcde可以正常分解成 a b c d e,而后面的"一二三四五"则成了乱码. 于是我开启了谷歌之旅,搜索"…
最近在建词典,使用Trie字典树,需要把字符串分解成单个字.由于传入的字符串中可能包含中文或者英文,它们的字节数并不相同.一开始天真地认为中文就是两个字节,于是很happy地直接判断当前位置的字符的ASCII码是否处于0~127之间,如果是就提取一个字符,否则提取两个.在测试分字效果的时候,这种方法出了问题.比如我传一个“abcde一二三四五”进去,abcde可以正常分解成 a b c d e,而后面的“一二三四五”则成了乱码. 于是我开启了谷歌之旅,搜索“如何在C++中将string中的中文分…
同上篇, client端也需要同样规则验证 compact_strlen: function(str) { var strlen = 0; for(var i =0; i<str.length;i++) { var char=str.charAt(i); if(/[u00-uFF]/g.test(char)) { strlen++; }else{ strlen+=2; } } return strlen; } 后来 有了一些修改 compact_strlen: function(data) {…
int strlen ( string $string )  int strlen ( string $string )  获取给定字符串的[字节]长度 成功则返回字符串$string的长度,如果$string为空,则返回 0. <?php $str1 = "abcdef"; //输出6 $str2 = " ab cd "; //输出7,注意,开头.结尾.中间的空格 $str3 = "中国你好"; //输出12,但会变化,与系统所采用的字符…
PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节.例: $enStr = 'Hello,China!'; echo strlen($enStr); // 输出:12 而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8.utf-8能兼容更多的字符,所以受到很多站长的喜爱.gbk与utf-8对中文的编码不同,导致中文在gbk与utf-8编码下所占字节也有差异. gbk编码下每个中文字符所占字节为…
在C#开发过程中字符串String类处理过程中,有时字符串长度不够时,需要在左侧指定特定的字符来补足字符串长度,此时可以使用String类下的PadLeft方法对字符串的左边进行按特定的字符和特定的长度进行补足.MSDN上对PadLeft函数的解释是:返回指定长度的新字符串,其中当前字符串的开头用空格或指定的Unicode字符填充. 例如字符串Code="ABC",按照业务要求需要单据号的长度为10位长度,不够10位长度的在左边补足对应个数的0,相应语句如下: string Code=…