मेरे पास एक स्ट्रिंग है जो मुझे तीसरे पक्ष के ऐप से मिलती है और मैं इसे अपने विंडोज सरफेस पर C # का उपयोग करके किसी भी भाषा में सही ढंग से प्रदर्शित करना चाहूंगा।
गलत एन्कोडिंग के कारण, मेरी स्ट्रिंग का एक टुकड़ा इस तरह से स्पैनिश में दिखता है:
Acción
जबकि यह इस तरह दिखना चाहिए:
Acción
इस प्रश्न पर उत्तर के अनुसार: सी # में स्ट्रिंग एन्कोडिंग कैसे पता करें , मुझे जो एन्कोडिंग प्राप्त हो रही है वह पहले से ही यूटीएफ -8 पर आनी चाहिए, लेकिन इसे एन्कोडिंग.फॉल्ट (शायद एएनएसआई?) पर पढ़ा जाता है।
मैं इस स्ट्रिंग को वास्तविक UTF-8 में बदलने की कोशिश कर रहा हूं, लेकिन समस्याओं में से एक यह है कि मैं केवल एन्कोडिंग वर्ग (UTF8 और यूनिकोड गुण) का एक सबसेट देख सकता हूं, शायद इसलिए कि मैं विंडोज़ सतह एपीआई तक सीमित हूं।
मैंने कुछ स्निपेट की कोशिश की है जो मैंने इंटरनेट पर पाया है, लेकिन उनमें से कोई भी पूर्वी भाषाओं (यानी कोरियाई) के लिए अब तक सफल साबित नहीं हुआ है। एक उदाहरण इस प्रकार है:
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
myString= utf8.GetString(utfBytes, 0, utfBytes.Length);
मैंने स्ट्रिंग को बाइट सरणी में निकालने की कोशिश की और फिर UTF8.GetString का उपयोग किया:
byte[] myByteArray = new byte[myString.Length];
for (int ix = 0; ix < myString.Length; ++ix)
{
char ch = myString[ix];
myByteArray[ix] = (byte) ch;
}
myString = Encoding.UTF8.GetString(myByteArray, 0, myString.Length);
क्या आप लोगों के पास कोई अन्य विचार है जो मैं कोशिश कर सकता हूं?
Encoding.Default
सिस्टम के ANSI कोडपेज को लौटाता है।