PHP中的UTF-8中文长度和截断

直接看代码简单:

1
2
3
4
5
6
7
8
9
<?php
    $str = "中文a数字1";
    printf("%d<br />", strlen($str));                #输出14,utf8中中文长度为3
    printf("%d<br />", mb_strlen($str, "UTF-8"));    #输出6
    printf("%s<br />", substr($str, 0 , 4));         #输出为“中�”
    printf("%s<br />", mb_internal_encoding());      #获取当前字符编码,常默认西欧编码“ISO-8859-1”
    mb_internal_encoding("UTF-8");                   #设定字符编码为utf8
    echo mb_substr($str, 0, 4);                      #输出为“中文a数”
?>