如何删除一个UTF8字符串里的双字节字符比如说我要删除编码为C2A0的双字节字符该怎么写?

解决方案 »

  1.   

    用ord($a)> 0xa0判断是不是双字节的字符,如果是就删除这个及后面一个字符。
      

  2.   

    不想遍历字符串就用preg_replace试试
    preg_replace("/[\x{0080}-\x{07FF}]+/u","",$str);
      

  3.   


    如果我要删除C2A0字符,这么写对不对?
    preg_replace("/[\x{C2A0}]+/u","",$str);
      

  4.   

    你只删除一个双字节字符?preg_replace("\xC2\xA0","",$str);
      

  5.   

    sorry..preg_replace("/\xC2\xA0/","",$str);
      

  6.   

    不用正则也可以,就直接
    str_replace("\xC2\xA0","",$str);
    原以为你要删掉所有utf-8的双字节.