ページにデータフィードを表示しようとしています。奇妙な文字でエンコードの問題が発生しています。何らかの理由で、フィードにU+FFFD
文字があります。そしてhtmlentities()
は文字をエスケープしないので、手動で置き換える必要があります。PHP:置き換えを行うためにU + FFFDをエンコードする方法は?
は、私は、次の試した(私は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にコンパイルする必要はありますか?代わりに、このような
[これは役立つかもしれません](http://stackoverflow.com/questions/4766778/how-to-encode-ufffd-in-order-to-do-a-replace?rq=1)別の言語だが非常に似ている結果 – Dale
str_replaceが正規表現を使用しないので、[preg_replace](http://php.net/preg_replace)関数も試してください – Dale
@endolent、Guys、stop [U + FFFD'文字の乱用](http://それは何**のために意味されていない**のためのstackoverflow.com/questions/4766778/how-to-encode-ufffd-in-order-to-do-a-replace#comment44707644_4766778)。 – Pacerier