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;
?>
结果输出的是“?心阋蹋”
很郁闷! 展开
<?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;
?>
结果输出的是“?心阋蹋”
很郁闷! 展开
3个回答
展开全部
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 );
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用str_replace不乱码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
header("Content-Type:text/html; charset=gb2312");放在最前,不行的话gb2312换成utf8
更多追问追答
追问
都不行
追答
".$v1[0]."",$strr);
echo $strr;
?>
是这样放么?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询