如何在php中过滤字体字符

时间:2010-09-09 03:48:42

标签: php character-encoding

我有一个arial字符让我头疼。将文档转换为phpquery对象后,U+02DD变成了问号。什么是一种有效的方法来删除PHP中的字符,将其称为'U+02DD'

2 个答案:

答案 0 :(得分:4)

您可以使用iconv()转换字符集并删除无效字符。

<?PHP
 /* This will convert ISO-8859-1 input to UTF-8 output and 
  * strip invalid characters
  */
 $output = iconv("ISO-8859-1", "UTF-8//IGNORE", $input);

 /* This will attempt to convert invalid characters to something
  * that looks approximately correct.
  */
 $output = iconv("ISO-8859-1", "UTF-8//TRANSLIT", $input);
?>

请参阅http://php.net/manual/en/function.iconv.php

上的iconv()文档

答案 1 :(得分:2)

使用preg_replace并按照以下方式执行操作:

$str = "your text with that character";

echo preg_replace("#\x{02DD}#u", "", $str); //EDIT: inserted the u tag for unicode

要引用大型unicode范围,可以使用preg_replace并使用\x{abcd}模式指定unicode字符。第二个参数是一个空字符串。这将使preg_replace无需替换你的角色,有效地删除它。


[编辑]另一种方式

您是否尝试过htmlentities。因为它的html-entity是&#733;,所以这样做或者用&#733;替换字符也可以解决你的问题。像这样:

echo preg_replace("#\x{02DD}#u", "&#733;", $str);