कि स्ट्रिंग वैध UTF-8 एन्कोडिंग में एन्कोड नहीं है:
यहाँ कोड है कि समस्या का कारण है है। यह यूटीएफ -16 जैसे किसी अन्य एन्कोडिंग में हो सकता है या शायद इसमें कुछ बाइनरी जंक शामिल है जो किसी भी प्रारूप से मेल नहीं खाता है।
नीचे की रेखा यह है कि, चूंकि आपने "यूटीएफ -8" को htmlspecialchars() के एन्कोडिंग प्रकार पैरामीटर के रूप में निर्दिष्ट किया है, तो स्ट्रिंग "यूटीएफ -8" का अनुपालन नहीं करती है, तो यह एक खाली स्ट्रिंग वापस कर देगी। यह PHP manual में यह बताता है।
एक साधारण फिक्स विकल्प का उपयोग करना या ध्वज को अनदेखा करना है। परिवर्तित करें:
htmlspecialchars($aboutarray[0]['about_us'], ENT_COMPAT, "UTF-8")
करने के लिए:
htmlspecialchars($aboutarray[0]['about_us'], ENT_COMPAT|ENT_SUBSTITUTE, "UTF-8")
या:
htmlspecialchars($aboutarray[0]['about_us'], ENT_COMPAT|ENT_IGNORE, "UTF-8")
नोट: ENT_IGNORE अनुपालन न करने वाले बाइट्स निकाल देता है। यह a security issue का कारण बन सकता है। आपकी स्ट्रिंग की सामग्री को वास्तव में समझना बेहतर है और यह कैसे एन्कोड किया जा रहा है। सरल ENT_IGNORE फिक्स का उपयोग करने के बजाय समस्या का स्रोत सही करें।
आप अपने आप को पूछना चाहिए क्यों अपने स्ट्रिंग UTF-8 में एन्कोड नहीं है ... यह होना चाहिए, लेकिन यह नहीं है।
मुझे इस समस्या का सामना करना पड़ा है; आप विवरण पढ़ सकते हैं कि खाली स्ट्रिंग क्यों लौटाई जा रही है here।
एक वर्णमाला मुद्दे की तरह लगता है। क्या आप सुनिश्चित हैं कि आपका डेटा यूटीएफ -8-एन्कोडेड है? –
मैं आपकी समस्या को गलत समझ सकता हूं, लेकिन मैंने ideone.com पर यह कोशिश की और ऐसा लगता है कि यह ठीक काम करता है: http://ideone.com/P298n –
@ EmilVikström मैं इस बारे में सुनिश्चित करने के लिए कैसे जा सकता हूं? – JimmyBanks