最近有人问我中文字符串截取的问题,我一直用mb_substr,也没发现那里不好用,可是有人和我说会出现乱码,我来回测试也没发现那里出现乱码。看到网上n多关于中文字符串截取的函数,真的有必要写的那么复杂吗??有谁知道告诉偶吧,嘿嘿,非常感谢

解决方案 »

  1.   

    用substr可能会出现切出半个汉字的情况。如用mb_substr,只要编码一致了,一般不会出现乱码。他们可能用的是substr();
      

  2.   

    看来mb_substr就可以了,可是为啥那么多人说不行呢,会出乱码呢。总之,谢谢楼上啦
      

  3.   

    你测试的时候是知道编码是什么的,但是你传递过来的str有时候并不清楚是什么编码,而一旦你不能在mb_substr函数内正确的指定这个编码的时候就会出现截取乱码的情况,这是很普遍也是我曾经碰过的事情.这就证实了别人出现的情况是的确存在的,但是为什么在测试环境里却又没发现.
      

  4.   

    中文截取就用mb_substr,乱码的话可以进行转码的
      

  5.   

    中文截取还是别用mb_substr。可以找一些处理utf8,gb2313截取中文的函数用吧。一些cms都带着
      

  6.   

    mb_substr 当然是可以的但是 mb_substr 属于扩展函数,如果你的客户租用的服务器恰恰没有加载 mb_string 的话,那不很麻烦吗?mb_substr 需要显式的给出编码类型时才能无误的工作,也显得累赘网上n多关于中文字符串截取的函数 自然有作者的考虑
    你可以不当回事,但不能也让人家不当回事