2010-09-27 13 views
5
  1. <div id="a">°F</div>
  2. $.get("http://blah.com/go",{'TU':$('#a').text()});
  3. आईआईएस सर्वर लॉग निम्नलिखित पैरामीटर दिखाने: समय की
    99.5%: टीयू =% C2% B0F समय की
    0.5%: टीयू =% सी 2% बी 0 + एफ
  4. सर्वर बाद में दुर्घटनाग्रस्त हो जाता है क्योंकि यह नहीं जानता कि 'डिग्री फ़ारेनहाइट' क्या है। माना जाता है कि त्रुटियों में से एक यह है कि हम अपने सर्वर पर भेजने के लिए DOM & से टेक्स्ट स्क्रैप कर रहे हैं। यह वह जगह है जहां मुझे संदेह है कि समस्या है, लेकिन मैं और अधिक समझना चाहता हूं।

अन्य जानकारी: समय का 0.5% IE8 & क्रोम दोनों रहा है। सभी आईपी को कोलंबिया के लिए भूगर्भित किया गया है, जो इसे स्थानीय मुद्दे की तरह लग रहा है, लेकिन हम इसे दोहराने में असमर्थ रहे हैं।एचटीएमएल एन्कोडिंग ° डिग्री प्रतीक अतिरिक्त स्थान

विचार ??

उत्तर

1

तो समस्या यह है कि कभी-कभी ° और F के बीच एक जगह होती है, उस स्थान को + में अनुवादित किया जाता है, और सर्वर इसे स्वीकार नहीं करता है? यदि हां, तो इसे भेजने से पहले अंतरिक्ष को क्यों न हटाएं?

$.get("http://blah.com/go",{'TU':$('#a').text().replace(' ', '')}); 
// Or a more granular fix 
$.get("http://blah.com/go",{'TU':$('#a').text().replace(/°\sF/, '°F')}); 
+0

हां। मैं इसे सेवा में भी कर सकता था। मैं इस बारे में अधिक उत्सुक हूं कि अंतरिक्ष कहां से और कहां से आ रहा है। – Zac

0

पाठ को div में कैसे रखा जा रहा है? सर्वर मान की जांच करने से पहले आपको आउटपुट करना चाहिए। मुझे नहीं लगता कि यह संभावना है कि आपको एक ही पाठ का एक अलग एन्कोडिंग मिल रहा है। यह शायद कुछ ऐसा करने के लिए है जो आप इसे पृष्ठ में डाल रहे हैं।

क्वेरी स्ट्रिंग प्राप्त करने से पहले सर्वर पर पेज एन्कोडिंग सेट करने का प्रयास करें, यह हो सकता है कि अलग-अलग ब्राउज़र एक अलग एन्कोडिंग का उपयोग कर रहे हों। यूटीएफ -8 w3.org द्वारा सुझाए गए एन्कोडिंग है। जावा में, आपको यह सुनिश्चित करना होगा कि आप क्लाइंट से कुछ भी पढ़ने के लिए किसी भी कॉल से पहले एन्कोडिंग सेट करें।

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