Bir sayfada bir veri feed'i görüntülemeye çalışıyorum. Tuhaf bir karakterle kodlama sorunları yaşıyoruz. Bazı nedenlerden dolayı, feed'de U+FFFD
karakter var. Ve htmlentities()
karakterden kaçmayacak, bu yüzden el ile değiştirmem gerekiyor.PHP: Bir değişiklik yapmak için U + FFFD nasıl kodlanır?
aşağıdaki denedim (PHP 5.3 kullanıyorum): Yukarıdaki çalışmanın
$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);
Hiçbiri.
Bu sayfayı okuduktan sonra - http://php.net/manual/en/regexp.reference.unicode.php - Ne yaptığımdan emin değilim. PCRE'ye UTF-8 desteğini derlemem gerekir mi? Bunun yerine böyle
[Bu yardımcı olabilir] (http://stackoverflow.com/questions/4766778/how-to-encode-ufffd-in-order-to-do-a-replace?rq=1) farklı bir dil ama çok benzer sonucu – Dale
Ayrıca [preg_replace] (http://php.net/preg_replace) işlevini kullanarak str_replace işlevini kullanmayın regex kullanmıyor – Dale
@redolent, Guys, stop [U + FFFD 'karakterini kötüye kullanma] (http: // ** ** olması gerekmediği için stackoverflow.com/questions/4766778/how-to-encode-ufffd-in-order-to-do-a-replace#comment44707644_4766778). – Pacerier