转载

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

发表于 2020-05-01 16:07:43 by月小升

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

<?php
 
$str='真正听得进去别人说话,其实是要';
//计算如下
echo '<meta charset="UTF-8">';
echo $str;
 
$lens = (strlen($str) + mb_strlen($str,'UTF8')) / 2;
 
echo '<hr>';
echo '标准算法长度:'.strlen($str);
 
echo '<hr>';
echo 'UTF8计算中文长度:'.mb_strlen($str,'UTF8');
 
echo '<hr>';
echo '正确的算法计算:'.$lens;
 
?>

浏览器返回信息

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

谈谈GB2312

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

  • Java字符串的10大热点问题盘点
  • 13. java StringBuffer,StringBuilder,String自身连接效率对比
  • java拆分字符串split
  • java将汉字转成拼音
  • PHP删除所有中文字符
  • php参数过滤技巧
  • xbmc中文显示设置
  • 树莓派中文支持
首发地址:–

无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢

原文  https://java-er.com/blog/php-len-utf-8-chinese-length/
正文到此结束
Loading...