मैं विभिन्न आरएसएस फ़ीड के बहुत सारे पाठ पढ़ रहा हूं और उन्हें अपने डेटाबेस में सम्मिलित कर रहा हूं।
बेशक, फीड्स में उपयोग किए जाने वाले कई अलग-अलग वर्ण एन्कोडिंग हैं, जैसे UTF-8 और ISO 8859-1।
दुर्भाग्य से, ग्रंथों के एन्कोडिंग के साथ कभी-कभी समस्याएं होती हैं। उदाहरण:
"फूबॉल" में "look" को मेरे डेटाबेस में इस तरह दिखना चाहिए: "in"। यदि यह "Ÿ" है, तो इसे सही ढंग से प्रदर्शित किया जाता है।
कभी-कभी, "फ़्यूबॉल" में "," मेरे डेटाबेस में इस तरह दिखता है: "ß"। फिर इसे गलत तरीके से प्रदर्शित किया जाता है।
अन्य मामलों में, "ß" को "-" के रूप में सहेजा जाता है - इसलिए बिना किसी बदलाव के। फिर इसे गलत तरीके से प्रदर्शित भी किया जाता है।
मैं 2 और 3 मामलों से बचने के लिए क्या कर सकता हूं?
मैं सब कुछ समान एन्कोडिंग, अधिमानतः UTF-8 कैसे बना सकता हूं? मुझे कब उपयोग करना चाहिए utf8_encode()
, कब उपयोग करना चाहिए utf8_decode()
(यह स्पष्ट है कि प्रभाव क्या है, लेकिन मुझे फ़ंक्शन का उपयोग कब करना चाहिए?) और मुझे इनपुट के साथ कुछ भी नहीं करना चाहिए?
मैं सब कुछ समान एन्कोडिंग कैसे बनाऊं? शायद समारोह के साथ mb_detect_encoding()
? क्या मैं इसके लिए कोई फ़ंक्शन लिख सकता हूं? तो मेरी समस्याएं हैं:
- मुझे कैसे पता चलेगा कि पाठ एन्कोडिंग का उपयोग करता है?
- मैं इसे यूटीएफ -8 में कैसे परिवर्तित करूं - पुरानी एन्कोडिंग जो भी हो?
इस काम की तरह एक समारोह होगा?
function correct_encoding($text) {
$current_encoding = mb_detect_encoding($text, 'auto');
$text = iconv($current_encoding, 'UTF-8', $text);
return $text;
}
मैंने इसका परीक्षण किया है, लेकिन यह काम नहीं करता है। इसके साथ गलत क्या है?