python पायथन का उपयोग कर तारों से गैर-ब्रेकिंग रिक्त स्थान को हटा रहा है





2 Answers

नहीं, u"\u00A0" गैर-ब्रेकिंग रिक्त स्थान के लिए एस्केप कोड है। "\u00A0" 6 वर्ण हैं जो किसी भी प्रकार का एस्केप कोड नहीं हैं। इसे पढ़ें

python string unicode text

मुझे पाइथन में एक बहुत ही बुनियादी स्ट्रिंग समस्या के साथ कुछ परेशानी हो रही है (जिसे मैं समझ नहीं सकता)। असल में, मैं निम्नलिखित करने की कोशिश कर रहा हूं:

'# read file into a string 
myString =  file.read()

'# Attempt to remove non breaking spaces 
myString = myString.replace("\u00A0"," ")

'# however, when I print my string to output to console, I get: 
Foo **<C2><A0>** Bar

मैंने सोचा कि "\ u00A0" यूनिकोड नॉन ब्रेकिंग रिक्त स्थान के लिए एस्केप कोड था, लेकिन स्पष्ट रूप से मैं इसे ठीक से नहीं कर रहा हूं। मैं क्या गलत कर रहा हूँ पर कोई विचार?




आपके द्वारा लिखे गए किसी भी संकेत में कोई संकेत नहीं है कि आप कुछ भी गलत कर रहे हैं: यदि मूल स्ट्रिंग में 'फू' और 'बार' के बीच एक गैर-ब्रेकिंग स्पेस थी, तो आपके पास अब वहां एक सामान्य स्थान है। यह मानता है कि किसी बिंदु पर आपने अपनी इनपुट स्ट्रिंग को डीकोड किया है (जो मुझे लगता है कि एक पायदान है, जब तक कि आप पाइथन 3 पर नहीं हैं या codecs मॉड्यूल से फ़ंक्शन के साथ file खोला गया हो) यूनिकोड स्ट्रिंग में, अन्यथा आप असंभव हैं replace के प्रयोजनों के लिए बाइट्स की गैर-यूनिकोड स्ट्रिंग में यूनिकोड वर्ण का पता लगाने के replace । लेकिन फिर भी, आप जो लिखते हैं उसमें समस्याओं का कोई स्पष्ट संकेत नहीं है।

क्या आप स्पष्टीकरण के ठीक पहले इनपुट (प्रिंट repr(myString) क्या स्पष्टीकरण दे सकते हैं) और आउटपुट (प्रिंट repr(myString) को प्रतिस्थापित करने के ठीक बाद फिर से क्या है) और आपको ऐसा क्यों लगता है कि यह एक समस्या है? repr बिना, वास्तव में अलग तारों को एक ही लग सकता है, लेकिन repr वहाँ मदद करता है।






Related