तो समस्या क्या है,
यह ’
( RIGHT SINGLE QUOTATION MARK
- U + 2019) वर्ण है जिसे UTF-8 के बजाय CP-1252 के रूप में डिकोड किया जा रहा है । यदि आप एन्कोडिंग तालिका की जांच करते हैं , तो आप देखते हैं कि यह चरित्र यूटीएफ -8 में बाइट्स से बना है , और । यदि आप CP-1252 कोड पेज लेआउट की जांच करते हैं , तो आप देखेंगे कि उनमें से प्रत्येक बाइट व्यक्तिगत पात्रों के लिए खड़ा है , और ।0xE2
0x80
0x99
â
€
™
और मैं इसे कैसे ठीक कर सकता हूं?
अक्षरों को पढ़ने, लिखने, स्टोर करने और प्रदर्शित करने के लिए CP-1252 के बजाय UTF-8 का उपयोग करें।
मेरे पास मेरे <head>
टैग और मेरे HTTP हेडर दोनों में UTF-8 के लिए सामग्री-प्रकार सेट है :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
यह केवल उस क्लाइंट को निर्देश देता है जो वर्णों की व्याख्या और प्रदर्शित करने के लिए एन्कोडिंग का उपयोग करता है। यह आपके स्वयं के प्रोग्राम को निर्देश नहीं देता है जो कि पात्रों को पढ़ने, लिखने, स्टोर करने और प्रदर्शित करने के लिए उपयोग करने के लिए एन्कोडिंग है। सटीक उत्तर सर्वर साइड प्लेटफॉर्म / डेटाबेस / प्रोग्रामिंग भाषा पर निर्भर करता है। ध्यान दें कि HTTP प्रतिसाद शीर्ष लेख में एक सेट HTML मेटा टैग पर पूर्ववर्ती है। एचटीएमएल मेटा टैग का उपयोग केवल तब किया जाएगा जब पृष्ठ HTTP से बजाय स्थानीय डिस्क फ़ाइल सिस्टम से खोला जाता है।
इसके अलावा, मेरा ब्राउज़र Unicode (UTF-8)
निम्न पर सेट है :
यह केवल क्लाइंट को मजबूर करता है जो वर्णों की व्याख्या और प्रदर्शित करने के लिए एन्कोडिंग का उपयोग करता है। लेकिन वास्तविक समस्या यह है कि आप ’
ग्राहक को पहले से ही (UTF-8 में एन्कोडेड) भेज रहे हैं ’
। क्लाइंट सही ढंग ’
से UTF-8 एन्कोडिंग का उपयोग कर प्रदर्शित कर रहा है। यदि क्लाइंट का उपयोग करने के लिए गलत सूचना दी गई थी, उदाहरण के लिए ISO-8859-1, तो आप संभवतः ââ¬â¢
इसके बजाय देखेंगे ।
मैं एक डेटाबेस के साथ ASP.NET 2.0 का उपयोग कर रहा हूं।
यह सबसे अधिक संभावना है जहां आपकी समस्या निहित है। आपको एक स्वतंत्र डेटाबेस टूल के साथ सत्यापित करने की आवश्यकता है कि डेटा कैसा दिखता है।
यदि ’
चरित्र है, तो आप डेटाबेस से सही तरीके से नहीं जुड़ रहे हैं। आपको UTF-8 का उपयोग करने के लिए डेटाबेस कनेक्टर को बताने की आवश्यकता है।
यदि आपका डेटाबेस शामिल है ’
, तो यह आपका डेटाबेस है जो गड़बड़ है। अधिकांश संभवतः तालिकाओं का उपयोग करने के लिए कॉन्फ़िगर नहीं किया गया है UTF-8
। इसके बजाय, वे डेटाबेस के डिफ़ॉल्ट एन्कोडिंग का उपयोग करते हैं, जो कॉन्फ़िगरेशन के आधार पर भिन्न होता है। यदि यह आपका मुद्दा है, तो आमतौर पर यूटीएफ -8 का उपयोग करने के लिए केवल तालिका को बदलना ही पर्याप्त है। यदि आपका डेटाबेस उसका समर्थन नहीं करता है, तो आपको तालिकाओं को फिर से बनाना होगा। जब आप इसे बनाते हैं तो टेबल की एन्कोडिंग सेट करना अच्छा अभ्यास होता है।
आप SQL सर्वर का उपयोग करने की सबसे अधिक संभावना रखते हैं, लेकिन यहां कुछ MySQL कोड ( इस लेख से कॉपी किए गए ) हैं:
CREATE DATABASE db_name CHARACTER SET utf8;
CREATE TABLE tbl_name (...) CHARACTER SET utf8;
यदि आपकी तालिका पहले से ही UTF-8 है, तो आपको एक कदम पीछे ले जाने की आवश्यकता है। किसने या क्या डेटा वहां डाला। यहीं समस्या है। एक उदाहरण HTML फॉर्म जमा किए गए मान होंगे जो गलत तरीके से एन्कोडेड / डिकोड किए गए हैं।
समस्या के बारे में अधिक जानने के लिए यहां कुछ और लिंक दिए गए हैं: