php preg_replace 中文关键字替换经常出现乱码怎么办?

例如:<?php$strr="叫你姨!";$z1=array('心','http://www.0cn.cn/');$v1=array($z1[0],$z1[1]);$st... 例如:
<?php
$strr = "叫你姨!";
$z1 = array('心','http://www.0cn.cn/');
$v1 = array($z1[0],$z1[1]);
$strr=preg_replace("/$v1[0]/i"," <a href='".$v1[1]."' target='_blank' >".$v1[0]."</a>",$strr);
echo $strr;
?>

结果输出的是“?心阋蹋”
很郁闷!
展开
 我来答
羽日博客
推荐于2016-06-08 · TA获得超过365个赞
知道答主
回答量:96
采纳率:100%
帮助的人:56.6万
展开全部
 header("Content-Type: text/html; charset=UTF-8");  
$str = "这是一段中文字符串";  
  
$str = "ThisisaChinesestring";  
function str_replace_cn($str, $start, $length ){  
 if(preg_match("/[\x7f-\xff]/", $str)){  
    if(is_utf8($str)){  
           
        return substr_replace($str,'**',$start*3, $enlengthd*3);  
    }else{  
        return substr_replace($str,'**',$start*2, $enlengthd*2);  
    }  
 }else{  
    return substr_replace($str,'**',$start, $enlengthd);  
 }  
}  
function is_utf8($word){   
     if(preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word) == true) {   
      return true;   
     }else {   
      return false;   
     }   
}  
echo str_replace_cn($str, 3, 1 );  
  
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
合庆事3583
2012-03-13 · TA获得超过6.4万个赞
知道大有可为答主
回答量:4.3万
采纳率:0%
帮助的人:6276万
展开全部
用str_replace不乱码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
烟花一样de寂寞
2011-06-21 · TA获得超过221个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:103万
展开全部
header("Content-Type:text/html; charset=gb2312");放在最前,不行的话gb2312换成utf8
更多追问追答
追问
都不行
追答
".$v1[0]."",$strr);
echo $strr;
?>
是这样放么?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式