से स्ट्रिंग कन्वर्ट करें मैंने इस विषय पर गुमराह किया है और मैंने हर जवाब देखा है, लेकिन मुझे अभी भी यह नहीं मिला है।सी # यूटीएफ -8 से आईएसओ -885 9 -1 (लैटिन 1) एच
मूल रूप से मैं ISO-8859-1 करने के लिए UTF-8 स्ट्रिंग बदलने की आवश्यकता है और मैं इसे निम्नलिखित कोड का उपयोग कर कार्य करें:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string msg = iso.GetString(utf8.GetBytes(Message));
मेरे स्रोत स्ट्रिंग
Message = "ÄäÖöÕõÜü"
है लेकिन दुर्भाग्य से मेरे परिणाम स्ट्रिंग
msg = "�ä�ö�õ�ü
मैं यहां क्या गलत कर रहा हूं?
.NET में सभी तार आंतरिक रूप से यूनिकोड वर्णों का उपयोग करके तारों को स्टोर करते हैं। "स्ट्रिंग" विंडोज़ -1252 "," आईएसओ -885 9 -1 "," यूटीएफ -8 "इत्यादि की कोई धारणा नहीं है। क्या आप अपनी स्ट्रिंग में किसी भी अक्षर को फेंकने की कोशिश कर रहे हैं जिसमें विंडोज़ में कोई प्रतिनिधित्व नहीं है -1252 कोड पेज? –
@IanBoyd वास्तव में, एक [स्ट्रिंग] (https://msdn.microsoft.com/en-us/library/system.string (v = vs.110) .aspx) यूटीएफ -16 कोड इकाइयों का एक गिनती अनुक्रम है। (दुर्भाग्य से, यूनिकोड शब्द को 'एन्कोडिंग। यूनिकोड' और Win32 एपीआई में गलत तरीके से गलत किया गया है। यूनिकोड एक वर्ण सेट है, न कि एन्कोडिंग। यूटीएफ -16 यूनिकोड के लिए कई एन्कोडिंग में से एक है।) –
आप गलत कार्य करते हैं: आप utf8 एन्कोडिंग में बाइट सरणी बनाएं, लेकिन आईएसओ डीकोड द्वारा उन्हें पढ़ें। यदि आप एन्कोडेड प्रतीकों के साथ स्ट्रिंग बनाना चाहते हैं तो यह सरल कॉल ** स्ट्रिंग msg = iso.GetString (iso.GetBytes (संदेश)); ** – StuS