7

我正在尝试在页面上显示数据提要。我们遇到了一个奇怪字符的编码问题。出于某种原因,在提要中有U+FFFD角色。并且htmlentities()不会转义字符,所以需要手动替换。(我使用的是 PHP 5.3)

我尝试了以下方法:

$string = str_replace( "\xFFFD",  "_", $string );
$string = str_replace( "\XFFFD",  "_", $string );
$string = str_replace( "\uFFFD",  "_", $string );
$string = str_replace("\x{FFFD}", "_", $string );
$string = str_replace("\X{FFFD}", "_", $string );
$string = str_replace("\P{FFFD}", "_", $string );
$string = str_replace("\p{FFFD}", "_", $string );

以上都不起作用。

阅读此页面后 - http://php.net/manual/en/regexp.reference.unicode.php - 我不确定我做错了什么。我需要将 UTF-8 支持编译到 PCRE 中吗?

4

2 回答 2

10
于 2012-12-06T10:28:38.287 回答
7

像这样使用preg_replace

$string = preg_replace('@\x{FFFD}@u', '_', $string);
于 2012-12-05T16:06:32.763 回答