Чтение веб-страницы на иностранном языке с StreamReader - PullRequest
0 голосов
/ 04 ноября 2011

Я пытаюсь получить веб-страницу, которая представляет собой смесь английского и корейского языков. Браузер может просто получать и отображать страницу, но когда я пытаюсь получить ее программным способом, я не могу заставить корейские символы отображаться правильно.

Я знаю, что вы можете указать кодировку в StreamReader, но я еще не нашел ту, которая работает.

Это код, который я использую, чтобы прочитать ответ:

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet));

response.CharacterSet возвращает UTF8. Я также попробовал все основные параметры кодирования - ASCII, BigEndian, Default, Unicode, UTF32, UTF7 и добавление Encoding.UTF8 вручную.

Я также пытался пройти через CultureInfo:

CultureInfo kr = CultureInfo.GetCultureInfo("ko");
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(kr.TextInfo.ANSICodePage));

с использованием "ko" и "ko-KR". Я получаю разные результаты от всех этих разных типов, но ни один из них не является правильным.

Я также пробовал кодовую страницу напрямую:

StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(949));

response.ContentEncoding возвращает пустую строку. У меня заканчиваются идеи.

Редактировать: Вот пример того, что я ожидаю:

프로젝트:

и вот что я получаю:

        //ASCII == ??????
        //BigEndian == ़汩湫â¨ç‰¥æ˜½âˆ¯æ©³â½¤ç°æ”
        //Default == íâ€â€žÃ«Â¡Å“ì Â트:
        //Unicode == íâ€â€žÃ«Â¡Å“ì Â트
        //UTF32 == ���������ï
        //UTF7 == 프로ì Â트
        //UTF8 == 프로ì 트

1 Ответ

1 голос
/ 04 ноября 2011

FWIW: потоковое считывающее устройство, вероятно, не будет работать хорошо.

Предпочитают использовать HttpWebRequest Class для выполнения запросов браузера (или вы начнете жалеть очень скоро, когда получите 302 ответа или сжатое и / или кодированное кодирование)

Я повысил это до ответа, поскольку может очень хорошо быть проблемой, которая у вас уже есть. Я не знаю как выглядит ответ, который вы получаете, конечно

...