दिलचस्प पोस्ट
अगर कोई फ़ोल्डर मौजूद नहीं है, तो इसे बनाएं कैसे कुछ साइट यूआरएल एक फ़ाइल एक्सटेंशन शामिल नहीं है? मैं सीएसएस में विशिष्ट वर्ग के नाम के साथ "आखिरी बच्चा" कैसे चुनूं? UIView परत पर इनर छाया प्रभाव? JSONP अनुरोध त्रुटि हैंडलिंग कन्वर्ट कमांड लाइन cURL को PHP curl करें ड्रॉप डाउन तीर का रंग और रूप बदलें दिए गए इंटरफ़ेस को लागू करने वाले सभी वर्गों को कैसे खोजें? Android पर एक SOAP वेब सेवा को कैसे कॉल करें सी ++ क्लास का आकार कैसे निर्धारित किया जाता है? आरएआई और स्मार्ट पॉइंटर्स सी ++ में अनाम वर्ग की एक सामान्य सूची एचएएस-ए, आईएस-ए ऑब्जेक्ट ओरिएंटेड भाषा में एक शब्दावली है प्रोग्रामर का क्या मतलब है जब वे कहते हैं, "एक इंटरफ़ेस के खिलाफ कोड, कोई ऑब्जेक्ट नहीं।" विंडोज बैच फ़ाइल में स्ट्रिंग कैसे विभाजित है?

रेल के 3 रूपों के लिए रूबी में _nownowman param क्या है?

रेल 3 पर रुबी में (वर्तमान में बीटा 4 का उपयोग कर), मुझे पता है कि form_for या form_for सहायकों का उपयोग करते समय, ☃ ( यूनिकोड \ x9731) के मूल्य के साथ _snowman नामक छिपा हुआ फ़ील्ड दिखा रहा है।

तो, यह क्या है?

वेब के समाधान से एकत्रित समाधान "रेल के 3 रूपों के लिए रूबी में _nownowman param क्या है?"

इंटरनेट पैरामीटर (5, 6, 7 और 8) को इसके मापदंडों को यूनिकोड के रूप में सांकेतिक शब्दों में बदलने के लिए मजबूर करने के लिए यह पैरामीटर जोड़ा गया था।

विशेष रूप से, यह बग ट्रिगर किया जा सकता है अगर उपयोगकर्ता लैटिन -1 के ब्राउज़र की एन्कोडिंग स्विच करता है यह समझने के लिए कि कोई प्रयोक्ता ऐसा प्रतीत होता है कि ऐसा पागल करने का फैसला क्यों किया जाता है, इस Google खोज को देखें उपयोगकर्ता ने वेब साइट को लैटिन-1 मोड में डाल दिए जाने पर, यदि वे उन वर्णों का उपयोग करते हैं जिन्हें लैटिन-1 और यूनिकोड (उदाहरण के लिए, æ या ç, नामों में सामान्य) के रूप में समझा जा सकता है, तो इंटरनेट एक्सप्लोरर उन्हें लैटिन में एन्कोड करेंगे -1।

इसका अर्थ है कि यदि कोई उपयोगकर्ता "चे ग्वेरा" की खोज करता है, तो यह सर्वर-साइड पर गलत ढंग से आ जाएगा। रूबी 1.9 में, यह एक एन्कोडिंग त्रुटि का परिणाम होगा जब पाठ अनिवार्य रूप से नियमित अभिव्यक्ति इंजन में अपना रास्ता बना देता है रूबी 1.8 में, इसके परिणामस्वरूप उपयोगकर्ता के लिए टूटी हुई परिणाम होंगे।

एक पैरामीटर बनाकर केवल IE को यूनिकोड वर्ण के रूप में समझा जा सकता है, हम आईई को स्वीकार-वर्णसेट विशेषता को देखने के लिए मजबूर कर रहे हैं, जो फिर यूटीएफ -8 के रूप में सभी वर्णों को एन्कोड करने के लिए कहता है, यहां तक ​​कि एनकोड किये जा सकते हैं लैटिन -1 में

ध्यान रखें कि रूबी 1.8 में, लैटिन-1 डेटा को अपने UTF-8 डाटाबेस में प्राप्त करने के लिए बहुत तुच्छ है (चूंकि पूरी स्टैक की जांच में कुछ भी नहीं है कि उपयोगकर्ता किसी भी समय भेजे गए बाइट वैध UTF-8 वर्ण हैं)। नतीजतन, यह उपयोगकर्ता-संबंधी बग को प्रदर्शित करने के लिए रुबी एप्लिकेशन (और PHP एप्लिकेशन, इत्यादि आदि) के लिए बहुत ही सामान्य है, और इसलिए उपयोगकर्ताओं को उपशामक उपाय के रूप में एन्कोडिंग को बदलने का प्रयास करने के लिए बहुत ही सामान्य है।

जो मैंने कहा था, जब मैंने यह पैच लिखा था, मुझे नहीं पता था कि पैरामीटर का नाम कभी उपयोगकर्ता के सामने दिखता है (यह ऐसे फॉर्म के साथ होता है, जो कि GET कार्रवाई का उपयोग करते हैं, जैसे खोज फ़ॉर्म)। चूंकि ऐसा होता है, हम इस पैरामीटर को _e नाम से बदल _e , और अधिक निन्दा-रहित यूनिकोड वर्ण का उपयोग करेंगे।

यह यहां है इंटरनेट एक्सप्लोरर 5 का समर्थन करने के लिए और उसके फॉर्म के लिए यूटीएफ -8 का उपयोग करने के लिए प्रोत्साहित करें।

यहां देखा गया प्रतिबद्ध संदेश इसका विवरण निम्नानुसार है:

कई ज्ञात वेब एन्कोडिंग समस्याओं को ठीक करें:

  • सभी रूपों पर स्वीकार-वर्णित निर्दिष्ट करें। सभी हाल के ब्राउज़र्स, साथ ही आईई 5 +, फार्म मापदंडों के लिए निर्दिष्ट एन्कोडिंग का उपयोग करेंगे
  • दुर्भाग्य से, आईई 5 + स्वीकार नहीं करेगी, जब तक कि फ़ॉर्म के मूल्यों में कम से कम एक अक्षर पेज के वर्णसेट में न हो। चूंकि उपयोगकर्ता डिफ़ॉल्ट को ओवरराइड कर सकता है
    वर्णसेट (जो कि यूटीएफ -8 के लिए रेल करता है), हम एक छिपी हुई इनपुट को एक यूनिकोड वर्ण युक्त करते हैं, जिससे आईई को स्वीकार-वर्णसेट को देखने के लिए मजबूर किया जा सकता है।
  • अब जब कि वेब इनपुट का विशाल बहुमत UTF-8 है, हम यूटिफ़ -8 में इनबाउंड पैरामीटर सेट करते हैं। यह एएससीआईआई -8 बीआईटी और असंगत एनकोडिंग के कई मामलों को समाप्त करेगा
    UTF-8।
  • आप सुरक्षित रूप से पैराम्स की अनदेखी कर सकते हैं [: _ snowman]

संक्षेप में, आप सुरक्षित रूप से इस पैरामीटर को अनदेखा कर सकते हैं।

फिर भी, मुझे यकीन नहीं है कि हम इंटरनेट एक्सप्लोरर 5 जैसी पुरानी प्रौद्योगिकियों का समर्थन क्यों कर रहे हैं। यदि आप मुझसे पूछते हैं तो रेल के निर्णय पर बहुत ही गैर रूबी की तरह लगता है।