Проблема может возникнуть из-за двух разных источников, одного в начале и одного в конце вашего фрагмента.И, как уже было отмечено, кодирование и декодирование, которое вы делаете в своем коде, на самом деле бесполезно, потому что источник (то, что возвращает DownloadString
) и цель (переменная result
) - это строки C # Unicode.
Источник 1: DownloadString
DownloadString не удалось правильно декодировать кодированную строку Windows-1250, поскольку либо сервер не отправил правильную кодировку в Content-Type header или DownloadString
даже не поддерживают это (маловероятно, но я не знаком с DownloadString).
Источник 2: File.AppendAllText
Строка была загружена правильно,затем кодируется в памяти в Windows-1250, затем снова декодируется в строку Unicode, и все работает хорошо.Но затем он был записан File.AppendAllText в другой кодировке по умолчанию.AppendAllText
имеет необязательный третий параметр, который можно использовать для указания кодировки.Вы должны установить это в Windows-1250, чтобы фактически записать файл в кодировке Windows-1250.
Кроме того, убедитесь, что любой редактор, который вы используете для открытия файла, использует одну и ту же кодировку - это часто не очень легкогарантии, поэтому я бы посоветовал вам открыть его в «удобном для разработчика» редакторе, который позволяет указать кодировку при открытии текстового файла.(Vim, Emacs, Notepad ++, Visual Studio, ...).