ページにデータフィードを表示しようとしています。奇妙な文字でエンコードの問題が発生しています。どういうわけか、フィードには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にコンパイルする必要がありますか?