2011-06-30 12 views
8

डीकोड नहीं कर सकता है मैं एक फाइल पढ़ रहा हूं जिसमें Python में रोमानियाई शब्द file.readline() के साथ हैं। मुझे एन्कोडिंग के कारण कई पात्रों में समस्या है।यूनिकोडडेकोड त्रुटि: 'ascii' कोडेक

उदाहरण:

>>> a = "aberație" #type 'str' 
>>> a -> 'abera\xc8\x9bie' 
>>> print sys.stdin.encoding 
UTF-8 

मैं कोशिश की है एनकोड() utf-8, cp500 आदि के साथ है, लेकिन यह काम नहीं करता।

मुझे नहीं पता कि कौन सी सही कैरेक्टर एन्कोडिंग का उपयोग करना है?

अग्रिम धन्यवाद।

संपादित करें: उद्देश्य एक dictionnary में फ़ाइल से शब्द स्टोर करने के लिए है, और जब उसे प्रिंट aberaţie प्राप्त करने और नहीं करने के लिए 'अबेरा \ xc8 \ x9bie'

उत्तर

15

तुम क्या करने कोशिश कर रहे हैं?

BYTES = 'abera\xc8\x9bie' 

यह जो स्ट्रिंग "aberaţie" का एक utf-8 एन्कोडिंग का प्रतिनिधित्व करता है बाइट्स का एक सेट है:

यह बाइट्स का एक सेट है। आप एक फाइल करने के लिए यूनिकोड स्ट्रिंग संग्रहीत करना चाहते हैं

>>> BYTES 
'abera\xc8\x9bie' 
>>> print BYTES 
aberație 
>>> abberation = BYTES.decode('utf-8') 
>>> abberation 
u'abera\u021bie' 
>>> print abberation 
aberație 

, तो आप एनकोड यह आपके द्वारा चयनित किसी विशिष्ट बाइट प्रारूप करने के लिए करना है:: आप डिकोड बाइट्स अपने यूनिकोड स्ट्रिंग पाने के लिए

>>> abberation.encode('utf-8') 
'abera\xc8\x9bie' 
>>> abberation.encode('utf-16') 
'\xff\xfea\x00b\x00e\x00r\x00a\x00\x1b\x02i\x00e\x00' 
संबंधित मुद्दे

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