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

直接看代码简单:

<?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数”
?> 

14条评论

    1. @七七, 呵呵,这些是中文特殊的地方啊

    1. @卡布奇诺, 嗯,中文的编码问题一直都是需要注意的地方,使用utf8比较好。

  1. 学习了..每次总有那么多的页面要收藏..感觉收藏夹不够用了..

    1. @mice, 如果是用Windows,不妨使用office套件中的OneNote,我还是挺喜欢这个软件的,可以将知识、资料分门别类地组织起来

    1. @风吟, 嗯!你的表达有点不清楚……代码最后一句就是演示如何正确截取中英文

    1. @风吟·, 嘿嘿,我只是记录下来,怕不常用就忘了而已

评论已关闭。