2011-05-31 10 views
8

मैं एक फ़ंक्शन के साथ पास करने के लिए पाठ की एक स्ट्रिंग यूआरएल एन्कोडिंग कर रहा हूं। हालांकि, यह डबल स्पेस में दूसरी जगह को "% A0" के रूप में एन्कोड करता है। इसका मतलब है कि जब मैं स्ट्रिंग को डीकोड करता हूं, तो "% A0" को ब्लैक बॉक्स में एक प्रश्न चिह्न के रूप में प्रदर्शित किया जाता है।"+" और "% A0" के बीच अंतर - urlencoding?

मुझे वास्तव में अतिरिक्त जगह को हटाने में सक्षम होना चाहिए, लेकिन मैं समझना चाहता हूं कि इसका क्या कारण है और इसे सही तरीके से कैसे संभालना है।

उदाहरण के लिए:

Something  Something else 

को एन्कोड:

Something+%A0Something+else 
+0

संभावित वर्ण डुप्लिकेट [यूआरएल एन्कोडिंग स्पेस कैरेक्टर: + या% 20?] (Http://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20) –

+3

@AJ: यह वही नहीं है। कृपया प्रश्न पढ़ें। ओपी जानना चाहता है कि एन्कोडेड मानों में '% A0' क्यों दिखाई दे रहा है, न कि रिक्त स्थान से बचने के लिए' + 'या'% 20' का उपयोग करना है या नहीं। –

उत्तर

13

%A0 इंगित करता है एक NBSP (U + 00A0)। + एक सामान्य स्थान इंगित करता है (यू +0020)। एनबीएसपी एक प्रतिस्थापन चरित्र (यू + एफएफएफडी) के रूप में प्रदर्शित होता है क्योंकि चरित्र का एन्कोडिंग पृष्ठ के एन्कोडिंग से मेल नहीं खाता है, इसलिए इसके बाइट अनुक्रम पृष्ठ के लिए मान्य नहीं है।

1
आपको हो रही समस्या

कि दूसरी "अंतरिक्ष" वास्तव में एक स्थान नहीं है है, यह एक चरित्र है कि उस फ़ॉन्ट नहीं करता है प्रतिनिधित्व करने के लिए एक ग्लिफ नहीं है (मुझे लगता है कि यह शब्द है) (इसलिए प्रश्न चिह्न वाला काला बॉक्स)। %A0 उस चरित्र के लिए escape code है। आपका कोड तकनीकी रूप से इसे सही ढंग से संभालने वाला है, मुझे लगता है कि समस्या जो भी पहले स्ट्रिंग उत्पन्न कर रही है उसके साथ है।

4

एक त्वरित गूगलिंग से पता चलता है कि %A0 गैर-ब्रेकिंग स्पेस कैरेक्टर या   एचटीएमएल में है। एक + एक मानक अंतरिक्ष चरित्र के लिए फॉर्म-एन्कोडिंग है।

Source

0

यदि मैं chart on this page का संदर्भ देता हूं, तो% A0 एक स्थान नहीं है। % 20 अंतरिक्ष कैरेक्टर के एन्कोडेड मान है।