.NET WebClient неправильно обрабатывает текст? - PullRequest
2 голосов
/ 23 марта 2011

Я думал, что у меня есть эта штука с Unicode. Затем я понимаю, что неправильно сохранял / разбирал текст.

Вот текст (извините, я не знаю, что он говорит. Случайный пользователь написал это)

Вот простой тестовый код. По сути, я пишу спецификацию для UTF-8 Unicode и пишу источник Это не сработало, и по соображениям здравомыслия я попытался сохранить файл напрямую (второй фрагмент кода). Оба получили НЕПРАВИЛЬНЫЙ текст в файле, и с помощью нескольких браузеров он показал мне неверный текст.

Почему и как мне это исправить?

Примечание. С моим первым кодом я вижу, что sz держит тот же неправильный текст в визуальных студиях.

using System;
using System.IO;
using System.Net;
using System.Text;

namespace unicode_stuff
{
    class Program
    {
        static void Main(string[] args)
        {
            var wc = new WebClient();
            var fn = "out.html";
            var sw = new StreamWriter(fn, false, Encoding.UTF8);
            var sz = wc.DownloadString("http://www.pastie.org/pastes/1703099/text");
            sw.WriteLine(sz);
            sw.Close();
        }
    }
}

второй

using System;
using System.IO;
using System.Net;

namespace unicode_stuff
{
    class Program
    {
        static void Main(string[] args)
        {
            var wc = new WebClient();
            var fn = "out.html";
            wc.DownloadFile("http://www.pastie.org/pastes/1703099/text", fn);
        }
    }
}

1 Ответ

4 голосов
/ 23 марта 2011

попробуйте установить кодировку UTF8 перед загрузкой:

wc.Encoding = System.Text.Encoding.UTF8;
...