2012-05-13 11 views
5

मेरा पहला एएसपी.नेट पेज बनाने का प्रयास कर रहा है। XP पर आईआईएस 5.1 मिला, .NET 4 चलाने के लिए कॉन्फ़िगर किया गया। एक नई आभासी निर्देशिका बनाई और एक .aspx फ़ाइल जोड़ा। जब मैं फ़ाइल ब्राउज़ करता हूं, तो गैर-ASCII वर्ण दूषित होते हैं। उदाहरण के लिए, एक ü (यू + 00 एफसी) को ü (यू +00 सी 3 यू + 00 बीसी) में बदल दिया जाता है, जो कि मैं नहीं जानता-यह-यूटीएफ -8 समतुल्य है।क्या मुझे गैर-ASCII वर्णों के लिए web.config चाहिए?

मैं इस का लाभ उठाने के विभिन्न तरीकों की कोशिश की है:

  1. मुझे यकीन है कि .aspx फ़ाइल वास्तव में UTF-8 के रूप में एन्कोड किया गया है बनाया है।
  2. मैं मेटा टैग सेट:

    <meta charset="UTF-8">

  3. मैं तहत HTTP हेडर> IIS में फ़ाइल प्रकार .aspx text/html;charset=utf-8 के रूप में संभाल करने के लिए वर्चुअल निर्देशिका सेट।

  4. मैंने ResponseEncoding="utf-8" को <%@ Page ... %> में जोड़ा।
  5. मैंने HttpUtility.HtmlEncoded() में स्ट्रिंग डाली। अब ü को Ã ¼ (यू +00 सी 3 यू + 00 बीसी) में बदल दिया गया था।

    1. चरित्र संदर्भ के साथ गैर- ASCII वर्ण की जगह, इस तरह के &#252; के रूप में यह 90, आज नहीं में ठीक था:

    अंत में, मैं 2 तरीके कि काम मिल गया।

  6. इस सामग्री के साथ, वर्चुअल निर्देशिका करने के लिए एक web.config फ़ाइल जोड़ना:

    <?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
        <system.web> 
        <globalization fileEncoding="utf-8"/> 
        </system.web> 
    </configuration> 
    

fileEncoding सेटिंग के बिना, ASP.NET पार्सर .aspx और भ्रष्ट हर गैर- ASCII चरित्र पढ़ा जाएगा फ़ाइल एन्कोडिंग का अनुमान लगाने के बिना। क्या यह कुछ ऐसा है जो आपने पेशेवरों के साथ जीना सीखा है, या क्या मुझे कुछ याद आ रहा है? क्या web.config फ़ाइल वैश्वीकरण सेटिंग्स तरीका है .aspx पृष्ठों पर "अंतर्राष्ट्रीय" वर्णों को संभालने के लिए? मुझे PHP के साथ समान समस्याएं याद नहीं हैं, इसलिए मुझे परेशान है कि यह एएसपी.नेट के साथ क्यों फसल है।

+0

मैं इसे web.config फ़ाइल के बिना काम करने की एक और रास्ता मिल गया: के रूप में .aspx पृष्ठ सहेजें यूटीएफ -8 बाइट ऑर्डर-मार्क (बीओएम) के साथ। आम तौर पर, यूटीएफ -8 को बीओएम की आवश्यकता नहीं होती है, क्योंकि बाइट-ऑर्डर एन्कोडिंग में अंतर्निहित है, लेकिन माइक्रोसॉफ्ट के पास इसकी आवश्यकता होती है, जो संभवतः सही काम है, क्योंकि यह फ़ाइल एन्कोडिंग को और अधिक जानकारी देता है मजबूत। मुझे लगता है कि यह एक तरह का समाधान है जिसे मैं ढूंढ रहा था, लेकिन टिप्पणियां अभी भी स्वागत है। –

+0

आपको माइक्रोसॉफ़्ट वेब प्लेटफॉर्म इंस्टॉलर स्थापित करने और आईआईएस एक्सप्रेस 7.5 और वेब मैट्रिक्स या वीएस 2010 एक्सप्रेस – Aviatrix

उत्तर

3

गैर-ASCII वर्णों का उपयोग करने के लिए आपको दो चीजें रखने की आवश्यकता है। UTF-8 का उपयोग करके फ़ाइलें सहेजें, फ़ाइलों के लिए इस एन्कोडिंग का चयन करके और सुनिश्चित करें कि आप हमेशा ASP.NET पर एक web.config है कि वहाँ अपने web.config

<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" /> 

नोट पर ये सेटिंग हैं कि हो सकता है । वैश्विक है जिसमें एएसपीनेट निर्देशिका {drive:}\WINDOWS\Microsoft.NET\Framework\{version}\CONFIG\, और फिर आपकी प्रोजेक्ट पर web.config में इन सेटिंग्स और जीवन भी हैं। कभी-कभी वैश्विक एक वर्तमान देश से एन्कोडिंग सेट करता है। इस मामले में आपको इसे अपनी परियोजना में यूटीएफ -8 पर वापस सेट करने की आवश्यकता है।

आप सभी कि पहले से ही, मैं सिर्फ बाहर 3 सेटिंग्स इंगित पाया है:

  1. यूनिकोड के साथ अपनी फ़ाइलें सहेजें।
  2. सेट requestEncoding = "utf-8"
  3. सेट responseEncoding = "utf-8"
+0

का उपयोग करने पर विचार करना चाहिए, यह काम नहीं किया है। फ़ाइल जोड़ने के बाद यह काम किया। <वैश्वीकरण अनुरोध एन्कोडिंग = "utf-8" प्रतिक्रिया एन्कोडिंग = "utf-8" fileEncoding = "utf-8" /> –

+0

@ blackholeearth0_gmail ठीक है, मैं अपना उत्तर अपडेट करूंगा – Aristos

संबंधित मुद्दे