java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

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

有关中文的问题。PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。

';
echo $str;

$lens = (strlen($str) + mb_strlen($str,'UTF8')) / 2;

echo '
'; echo '标准算法长度:'.strlen($str); echo '
'; echo 'UTF8计算中文长度:'.mb_strlen($str,'UTF8'); echo '
'; echo '正确的算法计算:'.$lens; ?>

浏览器返回信息

真正听得进去别人说话,其实是要
标准算法长度:45
UTF8计算中文长度:15
正确的算法计算:30

谈谈GB2312

对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节)。


This entry was posted in PHP and tagged , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/php-len-utf-8-chinese-length/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply