我有一个arial字符让我头疼。将文档转换为phpquery对象后,U+02DD
变成了问号。什么是一种有效的方法来删除PHP中的字符,将其称为'U+02DD'
?
答案 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);
?>
上的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是˝
,所以这样做或者用˝
替换字符也可以解决你的问题。像这样:
echo preg_replace("#\x{02DD}#u", "˝", $str);