मैं एक पेज पर डेटा फीड प्रदर्शित करने की कोशिश कर रहा हूं। हम एक अजीब चरित्र के साथ एन्कोडिंग मुद्दों का सामना कर रहे हैं। किसी कारण से, फ़ीड में U+FFFD
वर्ण है। और htmlentities()
चरित्र से बच नहीं पाएंगे, इसलिए मुझे इसे मैन्युअल रूप से प्रतिस्थापित करने की आवश्यकता है। (मैं PHP 5.3 उपयोग कर रहा हूँ)PHP: प्रतिस्थापन करने के लिए यू + एफएफएफडी को एन्कोड कैसे करें?
मैं निम्नलिखित की कोशिश की है: ऊपर काम का
$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 - मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं। क्या मुझे पीसीआरई में यूटीएफ -8 समर्थन संकलित करने की आवश्यकता है?
[यह मदद कर सकता है] (http://stackoverflow.com/questions/4766778/how-to-encode-ufffd-in-order-to-do-a-replace?rq=1) अलग-अलग भाषा लेकिन बहुत समान परिणाम – Dale
भी [preg_replace] (http://php.net/preg_replace) फ़ंक्शन का उपयोग करने का प्रयास करें क्योंकि str_replace regex – Dale
@redolent, दोस्तों, रोकें ['U + FFFD' वर्ण का दुरुपयोग] (http: // stackoverflow.com/questions/4766778/how-to-encode-ufffd-in-order-to-do-a-replace#comment44707644_4766778) इसके लिए ** ** के लिए ** नहीं है। – Pacerier