摘要: 当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8)复制代码代码如下:<?php$str=‘中文a字1符‘;echo strlen($str);echo ‘<br />‘;echo mb_strlen($str,‘UTF8‘);//输出结果//14//6?>结果分析:在strlen计算时,对待一个UTF8的中文字符是3个长度,所以“中文a字1符”长度是3*4+2=14在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“中文a字1符”长度是6关于中英文混排串的占位符计算: 阅读全文
posted @ 2013-03-26 11:48 小卟 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 也许很多phper不知道,PHP内置的字符串长度函数strlen()无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节)。所以当需要计算字符串中汉字的个数,或者一个字符串的长度,就不是简单的用strlen()能解决了,我们需要曲线救国了,下面我写个简单的代码举例说明:我们假设我们的编码方式是UTF-8$encode = 'UTF-8';$str = "admin你好";$str_num =mb_strle 阅读全文
posted @ 2013-03-26 11:46 小卟 阅读(711) 评论(0) 推荐(0) 编辑