2012-08-16 21 views
9

के बीच अंतर के बीच कोई अंतर मुझे समझा सकता है? और  

मेरे पास बाइनरी रूप और स्थान में डेटाबेस में संग्रहीत HTML डेटा है जिसमें   या   या कभी-कभी   हो सकता है।

भी मुद्दा है जब मैं सादे पाठ में इस HTML कन्वर्ट JSoup lib का उपयोग कर इसे यह ठीक से परिवर्तित लेकिन अगर मैं String.contains (मेरे स्ट्रिंग) जावा की विधि का उपयोग करें। ऐसा लगता है कि एचटीएमएल डेटा   है जिसमें से   है। स्ट्रिंग किसी भी विपरीत में नहीं मिला है।

उदाहरण:

HTML1: This is my test string

HTML2: This is my test string

अगर मैं सादे पाठ में परिवर्तित JSoup का उपयोग कर। यह रिटर्न

एचटीएमएल 1: यह अपने परीक्षण स्ट्रिंग

एचटीएमएल 2: यह मेरा परीक्षण स्ट्रिंग

है लेकिन फिर भी दोनों स्ट्रिंग ही नहीं हैं। ऐसा क्यों है?

उत्तर

24

  क्लासिक जगह नहीं है, एक जब आप अपने स्पेस बार, अपने HTML इकाई बराबर का प्रतिनिधित्व करती मारा आप मिलता है।

  और  non-breaking space प्रतिनिधित्व करता है, अक्सर ब्राउज़र द्वारा कई रिक्त स्थान मिलाप के पतन को रोकने के लिए प्रयोग किया है:

"    " => "" (केवल एक अंतरिक्ष में ढह)

"    " => "        "(ढह गया नहीं)

यदि आप क्लासिक और गैर-ब्रेकिंग रिक्त स्थान दोनों वाली स्ट्रिंग को पार्स कर रहे हैं, तो आप सुरक्षित रूप से प्रतिलिपि बना सकते हैं एक दूसरे द्वारा सीई।

3

& # 32 स्पेस कुंजी के लिए वर्ण है।

& # 160 और & nbsp दोनों गैर ब्रेकिंग स्पेस के लिए पात्र हैं।

यदि आपका डेटा विभिन्न स्रोतों से आया है तो यह संभव हो सकता है कि अंतरिक्ष प्रतीकों को अलग-अलग एन्कोड किया गया हो।

प्रत्यक्ष तुलना में वे अलग-अलग होने के रूप में दिखाए जाएंगे।

+0

वहाँ किसी भी तरह से मौजूदा पाठ की एनकोड शैली को खोजने के लिए है एक क्षैतिज खाली स्थान के चरित्र है? – Ketan

3

 , बस एक अंतरिक्ष चरित्र और कुछ नहीं है। इस चरित्र की नियमित घटना एक स्थान अंत में चरित्र के लिए गिर जाएगी।

&#160 और   दोनों गैर-ब्रेकिंग स्पेस कैरेक्टर का प्रतिनिधित्व करते हैं और यदि वे लगातार एक दूसरे के बाद होते हैं, तो वे पतन हो जाएंगे या एक स्पेस कैरेक्टर को तोड़ देंगे।

केवल, उन दोनों के बीच अंतर यह है कि &#160एचटीएमएल संख्या है और   एक एचटीएमएल नाम है।

असल में ये सभी HTML इकाइयां हैं। आप निम्नलिखित लिंक देखकर, उनके बारे में जान सकते हैं और जान सकते हैं।

  1. Link 1
  2. Link 2
1

जावा 8 के बाद निम्नलिखित काम करना चाहिए:

string.replace("\\h", " "); 

जहां \ h के रूप में वर्णित here

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