Pour les 'é', c'est sûrement un problème d'encodage.
Tu utilises un streamreader pour lire ton fichier html?
Version imprimable
Pour les 'é', c'est sûrement un problème d'encodage.
Tu utilises un streamreader pour lire ton fichier html?
Alors je sais pas c'est quoi un streamreader
J'ai donc regarder sur google LOL.
Alors non j'utilise pas un streamreader.
Toute ma source HTML va dans un variable string.
J'ai aussi pensé que dans ma source HTML j'allais retrouvé é pour remplacé les "é"
Ce qui aurais posé effectivement un probléme, mais ce n'est pas le cas.
Et qu'est-ce qui ne marche pas exactement?
Tu n'arrives pas à insérer dans ta grid?
Essayes déjà de voir en affichant les résultats de ta regex dans un messagebox pour voir si cela coince à ce niveau.
En tout cas, chez moi la regex marche sans problème avec les accents.
Sinon à tout hasard:
Code:"class=""soustitre""><br />([\w\s]+|[a-zA-Zéèàê])</a>"
Je pense vraiment que c'est lié à mon Regex.
L'enregistrement dans la grille ce fait sans probléme.
Et au 49éme enregistrement j'ai un probléme avec le Regex(1).
Les 48 enregistrement précedent n'ont pas de caractéres spéciaux.
Sauf le 49éme, c'est le premier avec caractéres "é".
J'ai essayé ce que tu ma donné mais ça ne passe pas non plus.
Au fait, tu as essayé dans une DataGridView classique? Car chez moi çà marche sans problème.
J'utilise un Xceed au lieu d'un Datagrid, ta vu juste, mais j'ai essaye comme tu me la demande avec un Datagrid est le probléme reste le même.
Alors aprés une multitude de démarche pour trouvé le probléme j'ai découvert ceci:
J'ai copié l'ensemble de source html, que je cole moi même dans un textbox.
Miracle ça fonctionne.
Alors j'ai réessayer avec la procédure de base.
Donc
Et je me rend compte enfaite que le "é" est remplace par un petit carré.Code:TextBox1.Text = WebBrowser1.DocumentText.ToString
Raison surement pour laquelle il ne récupére pas le nom.
Essais déjà çà pour voir si tu as toujours ce problème avec:
Code:TextBox1.Text = WebBrowser1.Document.DomDocument.documentElement.outerHTML
Après ton problème dépend manifestement de l'encodage du fichier html.
La propriété DocumentStream du WebBrowser permet de modifier l'encodage.
Tu peux par exemple spécifier l'encodage "utf-8" (65001) voir MSDN
Ne pas oulier l'import System.Text.
Code pour l'exemple:
ou même tester avec:Code:
1
2
3
4
5
6 Dim buf As Byte() = New Byte(WebBrowser1.DocumentStream.Length - 1) {} WebBrowser1.DocumentStream.Read(buf, 0, WebBrowser1.DocumentStream.Length) Dim ec As Encoding = Encoding.GetEncoding(65001) 'ici on spécifie l'utf Dim str As [String] = ec.GetString(buf) TextBox1.Text = str
Si tout cela ne marche pas, passe par un WebRequest (System.Net.WebRequest) et un streamreader qui permet de vraiment choisir son encodage.Code:Dim ec As Encoding = Encoding.GetEncoding(WebBrowser1.Document.Encoding)
La question est de savoir si vraiment tu as besoin ou non d'utiliser un WebBrowser. Si ton but est de juste récupérer le code source d'une page html (sans besoin de l'afficher), il y a le WebClient bien plus rapide pour les transferts de données.
Voilà en exemple une fonction pour utiliser WebRequest:
Code:Imports System.Net
Tu peux l'utiliser ainsi:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Function Get_request(ByVal url As String, Optional ByVal proxy As String = Nothing, Optional ByVal proxyport As Integer = Nothing) As String Dim readstr As IO.StreamReader 'on crée un objet streamreader Try If proxy <> "" Then Dim hproxy As WebProxy hproxy = New WebProxy(proxy, proxyport) WebRequest.DefaultWebProxy = hproxy End If Dim hwebrequest As System.Net.WebRequest = System.Net.WebRequest.Create(url) 'on crée la requete web 'hwebrequest. Dim hwebresponse As System.Net.WebResponse = hwebrequest.GetResponse 'on crée un objet de reponse a notre requete readstr = New IO.StreamReader(hwebresponse.GetResponseStream) 'on redefini notre streamreader avec la reponse à la requete en argument Return readstr.ReadToEnd() 'on renvoie l'ensemble du resultat readstr.Close() 'on ferme l'objet Catch ex As Exception Return ex.Message.ToString ' en cas d'erreur, on renvoie la description de l'erreur readstr.Close() End Try End Function
Code:Dim strReponseHtml As String = Get_request(URLDuSite)
Et voilà, c'est magnifique c'est bien huilé là. 450 enregistrements extrait sans probléme.
Et franchement je me souvienderais de ta précieuse aide, sérieux. :king:
Encore merci
Et pour ton info j'ai utilise utf:65000
Tank you encore ++