2012-12-13 5 views
6

मैं स्वीडिश अक्षरों से भरा एक फ़ाइल (लाइन द्वारा लाइन) पढ़ रहा हूं, लेकिन मैं स्वीडिश अक्षरों के साथ तारों को कैसे पढ़ और सहेज सकता हूं। यहाँ मेरी कोड है और मैं UTF8 एन्कोडिंग उपयोग कर रहा हूँ:स्वीडिश वर्णों को एक txt फ़ाइल से ठीक से कैसे पढ़ा जाए

TextReader tr = new StreamReader(@"c:\testfile.txt", System.Text.Encoding.UTF8, true); 
tr.ReadLine() //returns a string but Swedish characters are not appearing correctly... 
+0

वास्तव में क्या काम नहीं कर रहा है? – Jeroen

+0

'tr.ReadLine()' द्वारा वापस की जाने वाली स्ट्रिंग स्वीडिश वर्ण नहीं दिखाती है। – Geek

+0

सी # तार हमेशा यूटीएफ -16 एन्कोडेड होते हैं। एक स्ट्रीम पढ़ने के लिए आपके स्ट्रीम रीडर को यूटीएफ -8 एन्कोडिंग पास करके एक उचित एन्कोडेड यूटीएफ -16 स्ट्रिंग ऑब्जेक्ट देता है। अब यह केवल आप कैसे उत्पादन अपने स्ट्रिंग पर निर्भर करता है ... – CodeZombie

उत्तर

12

आप System.Text.Encoding.GetEncoding (-1252) को System.Text.Encoding.UTF8 बदलने की जरूरत है। नीचे देखें

 System.IO.TextReader tr = new System.IO.StreamReader(@"c:\testfile.txt", System.Text.Encoding.GetEncoding(1252), true); 
     tr.ReadLine(); //returns a string but Swedish characters are not appearing correctly 
+0

बढ़िया! धन्यवाद! – Geek

0

मैं इसे समझ से बाहर अपने आप को यानी System.Text.Encoding.Default स्वीडिश वर्णों का समर्थन करेंगे।

TextReader tr = new StreamReader(@"c:\testfile.txt", System.Text.Encoding.Default, true); 
+0

आपने यूटीएफ -8 में इनपुट एन्कोडिंग क्यों सेट की? – CodeZombie

+1

@ गीक हाँ यदि आपकी डिफ़ॉल्ट भाषा स्वीडिश भाषा के लिए है तो हाँ यह काम करेगा। अगर मेरी पोस्ट नहीं दिखाई देती है जो आपको इसके लिए कोड पेज देती है। – Sorceri

+1

यूटीएफ -8 और सीपी 1252 दोनों स्वीडिश भाषा का समर्थन करते हुए भाषा या चरित्र समर्थन से इसका कोई लेना-देना नहीं है। इसे फ़ाइल एन्कोडिंग के साथ करना है, जो सीपी 1252 है। फ़ाइल को ठीक से पढ़ने के लिए आपको हमेशा एन्कोडिंग (भाषा की बजाय) को जानना होगा। – Esailija

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