如何解决str_replace在替换单字例如"和"的时候不会检索到其他的词组,例如“缓往”汉字代码
和     2645 
缓 2726 往 4589 这类还有很多
所以替换单字的时候会出现乱码
谁知道如何解决啊
<?
echo mb_ereg_replace("和","111","aa 和 bb 缓往 cc---");
echo str_replace("和","111","aa 和 bb 缓往 cc---");
?> 

解决方案 »

  1.   

    转成UTF8就不会出现这个问题了在gbk编码下,
    嗯,似乎可以用preg_replace_callback加上一些无聊的判断来做,
    或者就是很笨地分解成单字的数组?
      

  2.   

    <?php
    mb_internal_encoding("UTF-8");
    mb_regex_encoding("UTF-8");
    echo mb_ereg_replace("和","111","aa 和 bb 缓往 cc---");
    ?>
    文件以UTF-8格式保存。
      

  3.   


    //好吧,傻点的办法
    $str = "aa 和 bb 缓往 cc---";
    $res = '';for($i=0,$len=mb_strlen($str);$i<$len;$i++)
    {
    if(($code = mb_substr($str, $i, 1, "GBK")) != '和')//substr效率还是很高的
    {
    $res .= $code;
    }
    else
    {
    $res .= '111';
    }
    }
    echo $res;
      

  4.   

    出现字的问题,最好用utf来试。
      

  5.   

    用这两种函数都可以  str_replace()/preg_replace()
      

  6.   

    utf-8
      

  7.   

    这个用str_replace()是完全没问题的