मैंने इस विषय पर गुगली की है और मैंने हर उत्तर पर ध्यान दिया है, लेकिन मुझे अभी भी यह नहीं मिला है।
मूल रूप से मुझे UTF-8 स्ट्रिंग को ISO-8859-1 में बदलने की आवश्यकता है और मैं निम्नलिखित कोड का उपयोग कर रहा हूं:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string msg = iso.GetString(utf8.GetBytes(Message));
मेरा स्रोत स्ट्रिंग है
Message = "ÄäÖöÕõÜü"
लेकिन दुर्भाग्य से मेरा रिजल्ट स्ट्रिंग बन जाता है
msg = "�ä�ö�õ�ü
मैं यहाँ क्या गलत कर रहा हूँ?
Encoding.Unicode
और Win32 एपीआई में गलत किया गया है। यूनिकोड एक वर्ण सेट है, एन्कोडिंग नहीं है। यूटीएफ -16 यूनिकोड के लिए कई एन्कोडिंग में से एक है।)
Message
UTF-8 से डिकोड किया गया था। यह मानते हुए कि इस भाग ने सही ढंग से काम किया है, लैटिन -1 में बदलना उतना ही सरल है जितना कि byte[] bytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(Message)
। फिर, जैसे स्टुएस कहता है, आप लैटिन -1 बाइट्स को वापस यूटीएफ -16 में बदल सकते हैंEncoding.GetEncoding("ISO-8859-1").GetString(bytes)