आपका एचटीएमएल आउटपुट एक ही एन्कोडिंग में होना चाहिए, उसके आसपास कोई रास्ता नहीं है। इसका मतलब है कि विभिन्न एन्कोडिंग में सामग्री को पहले आपके HTML एन्कोडिंग में परिवर्तित करने की आवश्यकता है। जबकि iconv
. के साथ ऐसा करना संभव है या mb_convert_encoding
, आपको दो समस्याओं का समाधान करना है:
- आपको सामग्री की वर्तमान एन्कोडिंग जानने (या अनुमान लगाने) की आवश्यकता है
- आपको इसे हर जगह मैन्युअल रूप से करने की ज़रूरत है
उदाहरण के लिए, एक सैद्धांतिक समाधान यह होगा कि यूटीएफ -8 को अपने एचटीएमएल एन्कोडिंग के रूप में चुनें और फिर इसे उन सभी स्ट्रिंग्स के लिए करें जिन्हें आप आउटपुट करने जा रहे हैं:
$string = '...'; // from the database
// If it's not already UTF-8, convert to it
if (mb_detect_encoding($string, 'utf-8', true) === false) {
$string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
}
echo $string;
उपरोक्त कोड मानता है कि गैर-यूटीएफ -8 सामग्री लैटिन -1 में एन्कोड की गई है, जो आपके प्रश्न के अनुसार उचित है।