Чтение содержимого сайта и определение кодировки
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Imagelink As String = ""
Dim Text As String = TextBox1.Text
Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create(Text), HttpWebRequest)
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"
Dim respons As HttpWebResponse
respons = DirectCast(request.GetResponse(), HttpWebResponse)
Dim enc As Encoding
Try
enc = Encoding.GetEncoding(respons.CharacterSet)
Catch ex As Exception
enc = Encoding.GetEncoding("ISO-8859-1")
End Try
Dim reader As New StreamReader(respons.GetResponseStream(), enc)
Dim sr As String = reader.ReadToEnd()
Dim Pattern As String = "<img([^s]|s[^r]|sr[^c]|src[^=]|src=[^'""])*src=['""](?<SRC>[^'""]*)['""]"
Dim m As MatchCollection = Regex.Matches(sr, Pattern)
For Each mm As Match In m
Dim link_ As String = mm.Groups("SRC").Value
' Dim x_ As String = link_.Substring(0, 7)
If link_.Substring(0, 7) = "http://" Then
Response.Write(mm.Groups("SRC").Value + "" + "<br>")
Imagelink = link_
End If
Next
Dim image_ As New Image
image_.Attributes("src") = Imagelink
PlaceHolder1.Controls.Add(image_)
End Sub
Это код, который я использую для отправки запроса на веб-страницу, получения его содержимого и извлечения ссылок с изображения с веб-страницы. Однако на некоторых веб-страницах он не возвращает кодировку в веб-заголовке, который возвращает "". Однако, когда я пытаюсь разобрать кодировку по умолчанию, она тоже не дает нужного содержимого? это действительно разочаровывает, кто-нибудь сталкивался с такой ситуацией раньше? Если бы кто-нибудь мог указать мне правильное направление относительно того, как преодолеть это или предсказать, какую кодировку использовать, это было бы здорово, спасибо.
Пример сайта, который не дает кодировку в заголовке ответа
1 ответ
В этом случае кодировка символов дается в заголовках: Content-Type: text/html; charset=utf-8