#c# #character-encoding #httpwebrequest
#c# #кодировка символов #httpwebrequest
Вопрос:
Я пытаюсь прочитать текст HTML-страницы с сайта — http://konungstvo.ru / , который имеет кодировку utf-8.
var request = _requestCreator.Create(uri);
try
{
using (var response = request.GetResponse())
{
if (response.ContentType.Contains("text/html"))
{
using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
{
string responseText = reader.ReadToEnd();
}
Но я получаю u001f�b1Vu0002Xu0002��X�nu001b�
и так далее, хотя код работает и с другими сайтами.
Комментарии:
1. Вы забыли вставить фактическую кодировку, которую вы используете, в этот фрагмент кода:
..., Encoding.))
2. Извините, я пытался явно указать кодировку, но это не помогло.
Ответ №1:
Я думаю, вам нужна кодировка символов для латинского / кириллического алфавита, которая может соответствовать стандарту ISO / IEC 8859-5 или, например, Windows-1251:
var encoding = Encoding.GetEncoding("iso-8859-5");
using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
Использование этого при чтении потока ответов дает некоторый кириллический контент, который, к сожалению, также не является правильным выводом: https://dotnetfiddle.net/x8jnN8 . Итак, извините, но это не реальный ответ на вашу проблему :/
Комментарии:
1. Нет, это неправильный текст. Должна быть строка с html страницы.