यह समझना कि IIS ASP एन्कोडिंग को कैसे संसाधित करता है
जैसा कि क्लासिक एएसपी में सभी एन्कोडिंग मुद्दों के साथ होता है, यह समझने में मदद करता है कि विभिन्न कमांड किस उद्देश्य को पूरा करते हैं (जैसा कि अक्सर लोग उन्हें गलत तरीके से उपयोग करते हैं, क्योंकि यह समस्या को हल करता प्रतीत होता है) ।
<%@ Language = "VBScript" CodePage = 65001 %>
इस लाइन को आमतौर पर गलत समझा जाता है, सिंटैक्स <%@
एक "ASP @ संसाधन निर्देश"है। ए> और IIS को ASP पृष्ठ को संसाधित करने का तरीका बताने का कार्य करता है और जब एन्कोडिंग के साथ सही ढंग से काम करने की बात आती है तो शायद यह सबसे महत्वपूर्ण आदेशों में से एक है।
-
@Language
आईआईएस को बताता है कि एएसपी पेज को संसाधित करने के लिए कौन सी पंजीकृत सक्रिय स्क्रिप्टिंग भाषा का उपयोग किया जाना चाहिए। -
@CodePage
आईआईएस को बताता है कि एएसपी पेज को संसाधित करने के लिए किस कोडपेज का उपयोग किया जाना चाहिए। यदि पृष्ठ कोUTF-8
. का उपयोग करके सहेजा गया है तो आईआईएस को यह जानने की जरूरत है कि पेज को संसाधित करते समय उसे कोडपेज65001
का उपयोग करना चाहिए (अन्यथाUTF-8
के रूप में जाना जाता है) ) ।
इसका मतलब है कि @CodePage
हमेशा उस भौतिक एन्कोडिंग से मेल खाना चाहिए जिसका उपयोग पृष्ठ बनाते समय किया गया था। इसे हल करने के लिए आपको एक उन्नत टेक्स्ट एडिटर का उपयोग करने की आवश्यकता हो सकती है, कुछ उदाहरण हैं Notepad++
(GUI विंडो के नीचे दाईं ओर स्थिति पट्टी पर एन्कोडिंग प्रदर्शित करता है) और विजुअल स्टूडियो
(एक छिपा हुआ मेनू कमांड है जिसे Advanced Save Options
. कहा जाता है जिसे मेनू बार को अनुकूलित करके एक्सेस किया जा सकता है) ।
<% Response.CodePage = 65001 %>
फिर से अक्सर गलत समझा जाता है, इस कमांड का उद्देश्य IIS को यह बताना है कि डायनेमिक स्ट्रिंग्स को कैसे एन्कोड किया जाना चाहिए (डायनेमिक स्ट्रिंग्स से हमारा मतलब कुछ भी है जो Response.Write()
का उपयोग करके आउटपुट किया जाता है। ) . संभवतः पूरी प्रक्रिया का सबसे महत्वपूर्ण हिस्सा, अगर इसे गलत तरीके से सेट किया गया है या माना जाता है कि एन्कोडिंग बेमेल हो सकता है और हो सकता है।
<% Response.CharSet = "UTF-8" %>
यह कमांड ;charset=utf-8
. सेट करता है Content-Type
. में HTTP शीर्षलेख जब सर्वर से क्लाइंट ब्राउज़र को प्रतिक्रिया भेजी जाती है तो यह ब्राउज़र को बताता है कि इस प्रतिक्रिया को UTF-8
के रूप में संसाधित किया जाना चाहिए बल्कि फिर डिफ़ॉल्ट। अर्थ कोड जैसे
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
अतिश्योक्तिपूर्ण है और इसका उपयोग नहीं किया जाना चाहिए। यह भी ध्यान देने योग्य है कि Content-Type
. के लिए एक कमांड है एचटीटीपी हेडर भी
Response.ContentType = "text/html"
इसे पहले से भी अधिक बेमानी बना रहा है।