页面编码为 utf8现定义一个长为36的字符串   'http://192.168.1.120/admin/index.php'用 strlen 来获取长度,返回值为 39用 mb_strlen($str,'utf8') 来获取长度,返回值为 37也就是说 两个函数 都不能正确得到字符串长度,这个问题该如何解决?是编码问题、字符串问题还是函数问题?

解决方案 »

  1.   


    $str='http://192.168.1.120/admin/index.php';
    echo strlen($str)."<br>";
    echo mb_strlen($str,'utf8');结果:
    36
    36
      

  2.   

    估计是你的字符串包含了一些不可见的多字节字元
    ASCII 字符串用 strlen 是准确的
      

  3.   


    文档是utf8,会不会影响?现在就是不知道为什么会有不可见的多字节字元
      

  4.   

    可以用editPlus打开看看是不是有隐藏的字符!
      

  5.   

    写程序千万不要用DW来设计PHP程序啊!!那样的话有很多不可以预知的错误!!
      

  6.   

    系统是 Ubuntu,软件是 Gedit