修复preg_replace PREG_BAD_UTF8_ERROR

时间:2015-10-23 19:00:37

标签: php character-encoding preg-replace

我读过这个 - preg_replace PREG_BAD_UTF8_ERROR,但答案并没有真正帮助我。我想从字符串中删除一些不可打印的字符。这是我的代码:

protected void Application_EndRequest(object sender, EventArgs e)
{

    var request = this.Request;
    var response = this.Response;

    if (request.RawUrl.Contains("bundles/"))
    {
         response.Cache.SetCacheability(HttpCacheability.Public);
         response.Cache.SetMaxAge(new TimeSpan(365,0,0,0));
         response.Cache.SetSlidingExpiration(true);
    }

我要删除的内容例如是“\ x99”。给定代码的输出是:

  

UTF-8

     字符串'Cortègedegymnastique devant LL。 MM。 ÄźşÄĹĹ”   (长度= 52)

     

布尔值为真

我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

您不需要在mb_ereg_replace

中使用分隔符

当我使用

echo 'encoding ' . mb_detect_encoding($string) . "\n\n<br/>";
echo 'replace result ' . mb_ereg_replace("\\x99", '', $string) . "\n\n<br/>";

我得到了

encoding UTF-8 
replace result Cortège de gymnastique devant LL. MM. ęźżąśł

\ x99不见了