Ho cercato su Google questo argomento e ho esaminato ogni risposta, ma ancora non riesco a capirlo.
Fondamentalmente ho bisogno di convertire la stringa UTF-8 in ISO-8859-1 e lo faccio usando il seguente codice:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string msg = iso.GetString(utf8.GetBytes(Message));
La mia stringa di origine è
Message = "ÄäÖöÕõÜü"
Ma sfortunatamente la mia stringa di risultati diventa
msg = "�ä�ö�õ�ü
Cosa sto facendo di sbagliato qui?
Encoding.Unicode
nell'API Win32. Unicode è un set di caratteri, non una codifica. UTF-16 è una delle numerose codifiche per Unicode.)
Message
stato decodificato da UTF-8. Supponendo che quella parte funzioni correttamente, la conversione in Latin-1 è semplice come byte[] bytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(Message)
. Quindi, come dice StuS, puoi riconvertire i byte Latin-1 in UTF-16 conEncoding.GetEncoding("ISO-8859-1").GetString(bytes)