Я погукав на цю тему і переглянув кожну відповідь, але все ще не розумію.
В основному мені потрібно перетворити рядок 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
API Win32. Unicode - це набір символів, а не кодування. UTF-16 - це одне з декількох кодувань для Unicode.)
Message
було розшифровано з UTF-8. Якщо припустити, що частина працювала правильно, перехід на латинську-1 так само просто byte[] bytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(Message)
. Тоді, як каже StuS, ви можете перетворити лайт-1 байт назад в UTF-16 за допомогоюEncoding.GetEncoding("ISO-8859-1").GetString(bytes)