2009-09-19 9 views
23

मैं एक पर्ल मॉड्यूल के साथ एक HTML दस्तावेज़ पार्स कर रहा हूं: HTML::TreeBuilder और HTML::Element। जो उम्मीद की जा करने के लिए है किसी कारण जब भी कोई टैग की सामग्री सिर्फ   है, यह एक अजीब चरित्र के रूप में HTML :: तत्व द्वारा दिया जाता है के लिए मैं पहले कभी नहीं देखा:यह ए0 चरित्र मेरे एचटीएमएल :: एलिमेंट आउटपुट में क्यों दिख रहा है?

alt text http://www.freeimagehosting.net/uploads/2acca201ab.jpg

मैं कर सकते हैं ' टी चरित्र की प्रतिलिपि बनाते हैं, इसलिए Google इसे नहीं देख सकता, इसे चरित्र मानचित्र में नहीं मिला, और जब मैं नियमित अभिव्यक्ति के साथ खोज करता हूं तो आश्चर्यजनक रूप से \w इसे पाता है। जब मैं लौटा दस्तावेज़ को एएनएसआई या यूटीएफ -8 में परिवर्तित करता हूं तो यह पूरी तरह से गायब हो जाता है। मुझे HTML :: Element दस्तावेज़ में कोई जानकारी नहीं मिली।

null जैसे कुछ और उपयोगी के साथ मैं इस चरित्र को कैसे पहचान और प्रतिस्थापित कर सकता हूं और भविष्य में इस तरह के अजीब पात्रों से मुझे कैसे निपटना चाहिए?

+0

छवि लिंक –

उत्तर

40

चरित्र "\xa0" (यानी 160) है, जो   के लिए मानक यूनिकोड अनुवाद है। (यानी, यह यूनिकोड की गैर-ब्रेकिंग स्पेस है।) यदि आप चाहें तो s/\xa0/ /g के साथ उन्हें हटाने में सक्षम होना चाहिए।

+0

s/\ xa0// g # ... और 15 और बनाने के लिए कुछ और वर्णों को सड़ा हुआ है ... – aidan

8

चरित्र non-breaking space है वह राशि है जो   के लिए खड़ा है:

शब्द संसाधन और डिजिटल टाइपसेटिंग में, एक नॉन-ब्रेकिंग स्पेस ("") (भी विराम रहित स्पेस, गैर भंगुर अंतरिक्ष कहा जाता है (एनबीएसपी), हार्ड स्पेस, या फिक्स्ड स्पेस) एक स्पेस कैरेक्टर है जो इसकी स्थिति में स्वचालित लाइन ब्रेक को रोकता है। एचटीएमएल समेत कुछ प्रारूपों में, यह लगातार व्हाइटसाइट स्पेस को एक ही स्थान पर गिरने से रोकता है।

एचटीएमएल में, सामान्य गैर-ब्रेकिंग स्पेस, जो सामान्य अंतरिक्ष चरित्र की समान चौड़ाई है, को   या   के रूप में एन्कोड किया गया है। यूनिकोड में, इसे U+00A0 के रूप में एन्कोड किया गया है।

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