代码:
<?php
$str="用今日的辛勤工作,换明日的双倍回报!";
$replace="百倍";
echo substr_replace($str,$replace,26,4);
?>运行结果:
用今日的辛勤工作��百倍明日的双倍回报!问题:
怎么逗号变成��,而且替换位置出错?

解决方案 »

  1.   

    注意编码,utf-8是三位的,gbk是两位的,所以会导致这种情况,很有可能你页面时utf-8但是你替换的时候却根据两位算的(应该是每个汉字三位),或者页面时gbk你却是根据三为算的(应该是两位)
      

  2.   

    substr_replace($str, $replace, 26, $lenth);如果是gbk的话$lenth应该是汉字长度*2,如果是utf-8的话应该是汉字长度*3
      

  3.   

    不光是 $lenthmixed substr_replace ( mixed string, string replacement, int start [, int length] )
    start 开始替换的位置
    length 替换是我长度gbk 编码 汉字数*2 + ascii字符数
    utf-8 编码 汉字数*3 + ascii字符数