दिलचस्प पोस्ट
ए के एजेक्स टैग की घटना विशेषता को मैं कौन सा मान कर सकता हूं? int सरणी का आकार ढूंढना आधिकारिक तरीका कुछ पूछने के लिए jQuery को सभी छवियों को लोड करने से पहले लोड करने के लिए प्रतीक्षा करें क्यों हैश फ़ंक्शन किसी प्रधानांक संख्या मापांक का उपयोग करना चाहिए? अधिकतम स्मृति जो malloc आवंटित कर सकते हैं आर में एक ggplot के प्लॉटिंग क्षेत्र के भीतर तालिका को जोड़ना Android पर वॉली के साथ मूलभूत प्रमाणीकरण का उपयोग कैसे किया जाता है? कितने क्षेत्रों द्वारा वस्तुओं की एक सरणी को सॉर्ट करने के लिए? कैसे jQuery में एक वैश्विक मूल्य (अनिवार्य रूप से एक वैश्विक चर) को संचित करने के लिए? OSX एल कैपिटन: सुडो पीआईपी ओएसईआरआर स्थापित करें: ऑपरेशन की अनुमति नहीं है "यह" चर आसानी से सेट करें? अजगर sys.intern क्या करता है, और इसे कब उपयोग किया जाना चाहिए? एंड्रॉइड एनडीके से संपत्ति में फाइल कैसे प्राप्त करें VBA संग्रह: चाबियाँ की सूची निर्दिष्ट नाम के साथ कॉलम वाले सभी टेबल खोजें

फ़ॉर्म में वर्ण एन्कोडिंग को सेट करना Internet Explorer के लिए सबमिट करें

मेरे पास एक ऐसा पृष्ठ है जिसमें फ़ॉर्म शामिल है यह पृष्ठ सामग्री प्रकार के टेक्स्ट / html के साथ परोसा जाता है; charset = utf-8 आईएसओ -885 9 -1 वर्ण एन्कोडिंग का उपयोग करके मुझे इस फ़ॉर्म को सर्वर पर जमा करना होगा। क्या यह इंटरनेट एक्सप्लोरर के साथ संभव है?

तत्व बनाने के लिए स्वीकार-वर्णसेट विशेषता सेट करना, जैसे, फ़ायरफ़ॉक्स, ओपेरा आदि के लिए काम करता है, लेकिन आईई के लिए नहीं।

<form accept-charset="ISO-8859-1"> ... </form> 

संपादित करें: यह फ़ॉर्म सर्वर ए द्वारा बनाया गया है और सर्वर बी को सबमिट किया जाएगा I सर्वर बी पर कोई नियंत्रण नहीं है I

अगर मैं सर्वर ए को वर्णसेट आईएसओ -8859-1 के साथ सामग्री की सेवा के लिए सब कुछ काम करता हूं, लेकिन मैं सर्वर ए की एन्कोडिंग में बदलाव के बिना यह काम करने का एक तरीका देख रहा हूं। मुझे सर्वर ए में एन्कोडिंग सेट करने के बारे में एक और सवाल है

वेब के समाधान से एकत्रित समाधान "फ़ॉर्म में वर्ण एन्कोडिंग को सेट करना Internet Explorer के लिए सबमिट करें"

इस के लिए एक सरल हैक है:

एक ऐसी इकाई के साथ छिपे हुए इनपुट फ़ील्ड को सम्मिलित करें जो केवल वर्ण में होती है, सर्वर को आपकी पोस्टिंग (या जीईटी करना) स्वीकार करने के लिए सेट करें

उदाहरण: यदि फॉर्म आईएसओ -8859-1 परोसने वाले एक सर्वर पर स्थित है और फॉर्म यूटीएफ -8 की उम्मीद कर रहे सर्वर पर पोस्ट करेगा तो इस तरह से कुछ ऐसा डालें:

 <input name="iehack" type="hidden" value="&#9760;" /> 

IE तब "पता लगाता है" कि फ़ॉर्म में एक UTF-8 वर्ण होता है और जब आप पोस्ट या जीटी प्राप्त करते हैं तो UTF-8 का उपयोग करें। अजीब है, लेकिन यह काम करता है

सभ्य ब्राउज़र के साथ:

 <form accept-charset="ISO-8859-1" .... > 

IE के साथ (कोई):

 document.charset = 'ISO-8859-1'; // do this before submitting your non-utf8 <form>! 

ऐसा लगता है कि यह नहीं किया जा सकता, कम से कम IE (6 और 7) के वर्तमान संस्करण के साथ।

IE फार्म विशेषता स्वीकार-वर्णसेट का समर्थन करता है, लेकिन तभी इसका मान 'utf-8' है

इसका समाधान उस पृष्ठ के लिए एन्कोडिंग 'आईएसओ -8859-1' का निर्माण करने के लिए सर्वर ए को संशोधित करना है जिसमें फ़ॉर्म शामिल है।

मुझे यहां वही समस्या मिली है मेरे पास एक यूटीएफ -8 पृष्ठ है जो आईएसओ -8859-1 सर्वर पर पोस्ट करने की आवश्यकता है।

ऐसा लगता है कि आईईओ आईएसओ -8859-1 को नियंत्रित नहीं कर सकता लेकिन यह आईएसओ -885 9 -15 को नियंत्रित कर सकता है

 <form accept-charset="ISO-8859-15"> ... </form> 

इसलिए यह मेरे लिए काम करता है, क्योंकि आईएसओ -8859-1 और आईएसओ -8859-15 लगभग समान हैं।

यदि आपके पास सर्वर पर कोई भी एक्सेस है, तो इसकी प्रसंस्करण UTF-8 में बदलें। गैर-यूटीएफ -8 फॉर्म प्रस्तुत करने की कला एक लंबी और दुखद कहानी है; फॉर्म और आई 18 एन के बारे में यह दस्तावेज ब्याज की हो सकती है। मैं समझता हूं कि आप अंतरराष्ट्रीय समर्थन की परवाह नहीं करते हैं; आप हमेशा यह सुनिश्चित करने के लिए कि वह लैटिन -1 में रहता है, यूटीएफ -8 डेटा को HTML संस्थाओं में परिवर्तित कर सकता है

बस एक ही समस्या है और मेरे पास एक अपेक्षाकृत सरल समाधान है जिसके लिए पृष्ठ वर्ण एन्कोडिंग (जो गधे में दर्द है) में कोई बदलाव की आवश्यकता नहीं है।

उदाहरण के लिए, आपकी साइट यूटीएफ -8 में है और आप आईओ -8859-1 में एक साइट पर एक फार्म पोस्ट करना चाहते हैं। बस पोस्ट की कार्रवाई को अपनी साइट पर एक पृष्ठ पर बदलें जो utf-8 से iso-8859-1 के पोस्ट किए गए मानों को रूपांतरित कर देगा।

यह कुछ ऐसा आसानी से किया जा सकता है:

 <?php $params = array(); foreach($_POST as $key=>$value) { $params[] = $key."=".rawurlencode(utf8_decode($value)); } $params = implode("&",$params); //then you redirect to the final page in iso-8859-1 ?> 

रूसी प्रतीकों 'विंडो -1251' के लिए

 <form action="yourProcessPage.php" method="POST" accept-charset="utf-8"> <input name="string" value="string" /> ... </form> 

जब बस स्ट्रिंग को cp1251 में कनवर्ट करें

 $string = $_POST['string']; $string = mb_convert_encoding($string, "CP1251", "UTF-8"); 

मुझे पूरा यकीन है कि यह IE के पुराने संस्करणों के साथ संभव नहीं होगा I accept-charset विशेषता तैयार accept-charset पहले, form तत्वों को निर्दिष्ट करने के लिए कोई रास्ता नहीं था कि कौन से वर्ण एन्कोडिंग स्वीकार किए जाते हैं, और सबसे अच्छा यह हो सकता है कि ब्राउजर ऐसा कर सकतें हैं जिस रूप में वह प्रपत्र होगा जो पृष्ठ में है।

यह थोड़ा दुखी है कि आपको पता होना चाहिए कि किस एन्कोडिंग का उपयोग किया गया था – आजकल हम उम्मीद करते हैं कि हमारे वेब फ्रेमवर्क इस तरह के विवरणों को अदृश्य रूप से खारिज करने के लिए और पाठ डेटा को यूनिकोड स्ट्रिंग के रूप में, पहले से ही डीकोड किए गए के रूप में प्रकट करेंगे …

ऐसा लगता है कि माइक्रोसॉफ्ट को स्वीकार-वर्णसेट जानता है, लेकिन उनके डॉक्टर यह नहीं बताते हैं कि किस संस्करण को काम करना शुरू हो रहा है …
आप यह नहीं बताते कि ब्राउज़र के किस संस्करण में आपने इसका परीक्षण किया है।

मुझे याद है कि इंटरनेट एक्सप्लोरर भ्रमित हो जाता है अगर स्वीकार्य-वर्णसेट एन्कोडिंग सामग्री-प्रकार हैडर में निर्दिष्ट एन्कोडिंग से मेल नहीं खाता है। आपके उदाहरण में, आप दावा करते हैं कि दस्तावेज को यूटीएफ -8 के रूप में भेजा जाता है, लेकिन आईएसओ -885 9 -1 में फ़ॉर्म जमा करना चाहते हैं उनसे मिलान करने का प्रयास करें और देखें कि क्या आपकी समस्या का समाधान है।

 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">