php中文字符替换乱码问题解决

<?php
 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 );

?>

授人以鱼不如授以渔

中文:是utf8的需要替换3个字节,不是utf8替换2个字节  ,不是中文的:替换一个字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值