7
n = u"Tübingen"
repr(n) # `T\xfcbingen` # Unicode
i = 1 # integer
निम्न फ़ाइलों के पहले फेंकता
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 82: ordinal not in range(128)
जब मैं n.encode('utf8')
कर यह काम करता है।
दूसरा मामला दोनों मामलों में निर्दोष काम करता है।
# Python File 1
#
#!/usr/bin/env python -B
# encoding: utf-8
print '{id}, {name}'.format(id=i, name=n)
# Python File 2
#
#!/usr/bin/env python -B
# encoding: utf-8
print '%i, %s'% (i, n)
दस्तावेज में चूंकि यह %
प्रारूप ऑपरेटर के बजाय format()
उपयोग करने के लिए, मुझे समझ नहीं आता क्यों format()
लगता है और अधिक "handicaped" है प्रोत्साहित किया जाता है। format()
केवल utf8
-strings के साथ काम करता है?
जब आपने 'u '{id}, {name}' प्रारूप बनाया था (id = i, name = n) 'आपने क्या देखा? ध्यान दें कि स्वरूपण स्ट्रिंग एक यूनिकोड स्ट्रिंग 'यू' ... ''है। कृपया इसे अपने उदाहरणों में जोड़ें और उस पर टिप्पणी करें। –
धन्यवाद। एसएलओटी, यह था। मैं अब समझता हूं कि मेरी गलती कहाँ थी। '{id}, {name} '' एक utf-8 स्ट्रिंग था (* जादू लाइन * '# एन्कोडिंग द्वारा परिभाषित: utf-8') और' n' यूनिकोड में था। उन्हें "संयोजित" करना संभव नहीं है। यही कारण है कि 'n.encode ('utf8') 'काम किया। सही? – Aufwind