भले ही यह वास्तव में अजीब लगता है कि आपका MySQL डेटा सही ढंग से आउटपुट किया गया है जहां PHP स्ट्रिंग एन्कोडिंग पर विफल हो जाती है, जिस तरह से मैं आपकी समस्या को हल करने का प्रयास करता हूं, इस समस्या को यह पहचानने की कोशिश कर रहे चरणों में तोड़ना होगा कि यह गलत कोडिंग कहां उत्पन्न हुई है!पी>
सबसे पहले, आपको अपना default_charset
सेट करने का प्रयास करना चाहिए करने के लिए utf-8
php.ini फ़ाइल के भीतर, जो इस प्रकार किया जाता है:
default_charset = "utf-8";
यदि आप प्रदाता प्रतिबंधों के कारण ऐसा नहीं कर सकते हैं तो आप अभी भी ini_set समारोह!
आप यह भी सुनिश्चित करना चाहेंगे कि वेबसर्वर utf-8 एन्कोडेड फ़ाइलों को आउटपुट करने के लिए भी सेट है! Apache में यह दोनों httpd.conf या htaccess फ़ाइलों का उपयोग करके किया जा सकता है:
AddDefaultCharset UTF-8
इस बिंदु पर यदि सब कुछ विफल हो जाता है, तब भी... PHP हेडर और सापेक्ष html वर्णसेट के साथ जाने का प्रयास करें:
<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
</body>
</html>
हालांकि, यह बहुत महत्वपूर्ण है कि आपकी फ़ाइलें उपयुक्त एन्कोडिंग का उपयोग करके भी सहेजी जाती हैं (utf-8 लगभग हमेशा बेहतर विकल्प होता है, यह समस्याओं को काफी हद तक रोकने में मदद करता है)। यदि आपने utf-8 से भिन्न एन्कोडिंग वाली फ़ाइलें सहेजी हैं, तो उन्हें नष्ट कर दें और उनकी पुरानी सामग्री से नए बनाएँ। कभी-कभी फ़ाइल बनने के बाद संपादक वास्तव में एन्कोडिंग को ठीक से स्विच करने में सक्षम नहीं होते हैं, भले ही नोटपैड ++ आमतौर पर उस पर अच्छा करता है; बस converto to
. का उपयोग करें encode in
सुविधा!
यदि यह अभी भी काम नहीं कर रहा है, हालांकि मुझे आशा है कि यह अब तक हो जाएगा, आप कुछ अन्य php विकल्प देख सकते हैं जैसे mb_detect_encoding , mb_convert_encoding , htmlentities और htmlspecialchars समस्या को ठीक करने के लिए!