比如:这是一个??戟懈叚眂!中间的?号部分是乱码,想替换掉,如何用正则写?不推荐循环,因为这个文本可能会很长

解决方案 »

  1.   

    你判断哪个字符在chr(127)之前,而且大于chr(127)即可 
      

  2.   

    用ord()函数得到Ascii码,多少值为乱码范围???
      

  3.   

    $output = preg_replace('/\?/','',$output);
      

  4.   


    string result = Regex.Replace("??aaff??","\\?","");
      

  5.   

    utf-8 不亂的話  你把文本轉碼就好了iconv('utf-8',big5,'文本')
      

  6.   

    显示 ? 并不表示原文本是字符“?”
    通常 gbk 文字被错误的截断后,截断处会显示“?”
    utf-8 则显示“�”
      

  7.   

    //试下这代码,没测试过.....读取正常正符,忽略不正常字符
    function sub_str($str, $charset = "utf-8"){
    $re['utf-8']   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
    $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
    $re['gbk']    = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
    $re['big5']   = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
    preg_match_all($re[$charset], $str, $match);
    return join("",$match[0]);
    }
      

  8.   

    如有三条记录:
    1.ILove这是真的
    2.ŷķ
    3.绱㈤┈閲屾捣鐩如何删除2,3 记录????
      

  9.   

    治标不治本,你早把数据库、控制页面、处理页面、显示页面都做成utf-8不就没事,把这个标治好,你还会有其它的 等着你。建议你还是统一编码吧~~