PHP的htmlentities函数不编码★star

时间:2012-12-18 21:26:29

标签: php html-entities

htmlentities($this->name, null, "UTF-8");

不对星(★)进行编码。我怎样才能对它进行编码呢?

更新: &acirc无法渲染星标。另外,我正在使用:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

2 个答案:

答案 0 :(得分:2)

在PHP&gt; = 5.4中,encoding参数的默认值已更改为UTF-8

如果您使用:

htmlentities( "★", null, "ISO-8859-1");

明星角色将转换为&acirc;

答案 1 :(得分:2)

  

如何让它对星星进行编码?

你做不到。 htmlentities不会对所有Unicode字符进行编码。但您可以尝试一些解决方法,例如this one

或者您可以使用json_encode的输出:

$txt = preg_replace_callback(
    '/[\x80-\xFF]{3,}/', //do not trust this, it's only example that works for small range of unicode characters, that happens to include black star 
     function($m){ 
         return str_replace('\\u','&#x',trim(json_encode($m[0]),'"')).';';
      }, "Black ★ Star"
); // Black &#x2605; Star