मूलभूत समस्या फॉर्म पोस्ट पर Response.Codepage का प्रभाव है।
जब आप किसी क्लाइंट को एक फॉर्म भेजते हैं जो निर्दिष्ट करता है कि सामग्री यूटीएफ -8 के रूप में एन्कोड की गई है, तो ब्राउज़र यह मान लेगा कि फॉर्म पोस्ट की सामग्री को यूटीएफ -8 के रूप में एन्कोड किया जाना चाहिए।
अब कार्रवाई पेज कि पोस्ट प्राप्त करता होगा (कुछ जवाबी intuatively) Response.Codepage
के मूल्य का उपयोग यह सूचित करने के लिए कैसे पोस्ट में पात्रों इनकोड। यह स्पष्ट नहीं है क्योंकि हम इसे भेजने वाले के एन्कोडिंग को परिभाषित करने के लिए प्रेषक का काम सोचते हैं। यह भी सोचने के लिए एक प्राकृतिक छलांग नहीं है कि हम अपनी प्रतिक्रिया में जो भेजना चाहते हैं उसके एन्कोडिंग के साथ एक संपत्ति को प्रारंभिक अनुरोध प्राप्त करने के तरीके के साथ कुछ भी करना होगा। इस मामले में यह करता है।
क्या हो रहा है आपका फॉर्म चरित्र के यूटीएफ -8 एन्कोडेड संस्करण को पोस्ट कर रहा है लेकिन प्राप्त पृष्ठ में इसका प्रतिक्रिया नहीं है।कोडपेज 65001 (यूटीएफ -8 कोडपेज) पर सेट है। यह शायद 1252 की तरह OEM कोडपेज सिस्टम पर सेट है। इसलिए चरित्र के लिए यूटीएफ -8 एन्कोडिंग को दो अलग-अलग वर्णों के रूप में व्याख्या किया जाता है।
मेरे एएसपी में से निपटने के अच्छे चरित्र के लिए सुझाव दिए गए हैं: -
- सभी सहेजें UTF-8 के रूप में पृष्ठों
- शामिल <% @ कोडपेज = 65001 सभी पृष्ठों के शीर्ष पर
- <% शामिल करें Response.CharSet = "UTF-8"%> शीर्ष पर सभी पृष्ठ
- स्टोर एक यूनिकोड फ़ील्ड प्रकार जैसे SQL सर्वर NVARCHAR प्रकार में डेटा पोस्ट किया गया।
यहां महत्वपूर्ण बात यह है कि इससे पहले कि आप किसी ASP पेज में प्रपत्र मूल्यों को पढ़ आप यह सुनिश्चित करें कि Response.Codepage एक कोडपेज प्रेषकों एन्कोडिंग से मेल खाती पर सेट है और यह स्वचालित रूप से नहीं होता है बनाने के लिए की जरूरत है।
quibble क्षमा करें, लेकिन यह ASCII के रूप में पाठ नहीं पढ़ रहा है क्योंकि ASCII उच्चारण अक्षरों या कॉपीराइट प्रतीक का समर्थन नहीं करता है। इसे आईएसओ -885 9 -1 या विंडोज -1252 जैसे आठ-बिट एन्कोडिंग का उपयोग करना होगा। –