Bonjour,
Je code en VB.Net.
J'accède à une page http comme suit :
Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Sub GetCisteDetail(ByRef Ligne As DataRow) Dim texte, Descr As String texte = GetCodeSource("https://www.cistes.net/choixciste.php?numero=60792") Descr = ExtractDataWeb(pos, texte, "<p><b>Elle s'appelle : </b>", "</p>") ==> le reste du code a été supprimé, inutile pour expliciter mon problème Public Function GetCodeSource(sURL) As String Dim URI As New Uri(sURL) Dim request As WebRequest = WebRequest.Create(URI) request.Method = "GET" Dim response As WebResponse = request.GetResponse() Dim dataStream As Stream = response.GetResponseStream() Dim encode = System.Text.Encoding.GetEncoding("utf-7") Dim reader As New StreamReader(dataStream, encode) Dim responseFromServer As String = reader.ReadToEnd() reader.Close() dataStream.Close() response.Close() GetCodeSource = responseFromServer End Function Function ExtractDataWeb(ByRef pos, ByRef txt, ByRef txtDeb, ByRef txtFin) As String Dim i, j As Integer 'Long coince avec Instr Dim retour As String = Nothing i = pos i = InStr(i, txt.ToString, txtDeb.ToString) If i > 0 Then i = i + Len(txtDeb) j = InStr(i, txt, txtFin) If j > 0 Then retour = Trim(Mid(txt, i, j - i)) End If End If pos = j ExtractDataWeb = retour End Function
Extrait de la page accédée
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Détails de la ciste 60792</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
plus loin, ce qui m'intésesse
les 2 caractères qui suivent </b> ne sont pas retournés.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <p><b>Elle s'appelle : </b>La ciste de la dame blanche</p>
Mon problème : quelque soit l'encoding utilisé pour lire le résultat de ma requête, je n'arrive pas à avoir les 2 caractères </b>‘’La ciste.
Si j'utilise utf-8, je n'ai plus les accents.
Avec utf-7, lors de l'exécution, en mettent un point d'arrêt sur l'instruction suivant l'alimentation de Descr je vois
ChrW(145) & ChrW(146) & "La ciste de l" & ChrW(146) & "égouttoir à bouteille" & ChrW(146) & ChrW(146)
ce qui fait que ces 2 caractères ne sont pas affichés.
J'ai essayé aussi avec iso-8859-1, -15 idem utf-7.
Pourtant je les vois quand j'affiche la page web.
Quelqu'un aurait-il la solution ?
Merci de votre aide.
Partager