php中使用mb_strlen解决中文字符数,以及中文截取乱码问题

[ 2012-12-13 20:14:15 | 作者: admin ]
字号: | |
p.s. 使用mb_strlen函数必须指定编码

在长度检查方面,数据库使用的是varchar,长度是按字符个数算的,比如“abcdef”算6个字符,“一二三四五六”也算六个字符。而php的strlen方法算出并不一样,strlen("abcdef")是6,而strlen("一二三四五六")是18。这样检查起来就麻烦了。

php处理中文字符数,可以用mb_strlen() ,具有编码无关性,看下面的演示:

mb_strlen('abcdef','utf-8') == 6
mb_strlen('一二三四五六','utf-8') ==6

另外中文的截取也需要mb_substr()也是编码无关性,看演示
<?php   
echo mb_substr('曾经年少爱追梦一心只想往前飞', 0, 7, 'utf-8');   
?>   
输出:曾经年少爱追梦

<?php   
echo mb_substr('A曾经年少爱追梦一心只想往前飞', 0, 7, 'utf-8');   
?>   
输出:A曾经年少爱追
[最后修改由 admin, 于 2012-12-17 15:15:51]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1931

这篇日志没有评论。

此日志不可发表评论。