私はこのトピックについてグーグルで検索し、すべての回答を調べましたが、それでもまだわかりません。
基本的に、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 = "�ä�ö�õ�ü
ここで何が間違っているのですか?
Message
は、UTF-8からデコードされたものだと思います。その部分が正しく機能していると仮定すると、Latin-1への変換はと同じくらい簡単byte[] bytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(Message)
です。次に、StuSが言うように、Latin-1バイトをUTF-16に変換し直すことができますEncoding.GetEncoding("ISO-8859-1").GetString(bytes)