sl028 Δημοσ. 15 Ιουνίου 2016 Δημοσ. 15 Ιουνίου 2016 Δεν μπορεί να διαβάσει ελληνικούς χαρακτήρες, μου βγάζει αποτελέσματα κάτι ΞΞ.... Υπάρχει τρόπος είτε με regex είτε με άλλο τρόπο πχ agility pack να τους διαβάσει;
M2000 Δημοσ. 15 Ιουνίου 2016 Δημοσ. 15 Ιουνίου 2016 Κάνε ένα τεστ με ένα γράμμα το Γ αν παίρνεις κωδικό 915 τότε το πρόβλημα είναι στην εμφάνιση, εκεί δεν έχεις κατάλληλη γραμματοσειρά. (αν έχεις πάμε σε άλλο ζήτημα, κωδικοσελίδας)
sl028 Δημοσ. 15 Ιουνίου 2016 Μέλος Δημοσ. 15 Ιουνίου 2016 Αν του βάλω το Γ δεν μου βγάζει σφάλμα, απλώς δεν μου βγάζει αποτελέσματα.
M2000 Δημοσ. 15 Ιουνίου 2016 Δημοσ. 15 Ιουνίου 2016 Αν του βάλω το Γ δεν μου βγάζει σφάλμα, απλώς δεν μου βγάζει αποτελέσματα. Ασφαλώς το regex το απορρίπτει το θέμα είναι αν έχεις εξαγωγή ελληνικών χωρίς αυτό. Μετά κοιτάμε τι κάνει αυτό!
sl028 Δημοσ. 15 Ιουνίου 2016 Μέλος Δημοσ. 15 Ιουνίου 2016 Public Function Apotelesmata2(ByVal url As String) As DataTable Dim wc As New WebClient Dim dateString As String = "http://example.gr/?date=" Dim html As String = wc.DownloadString(DateString) Dim links As MatchCollection = Regex.Matches(html, "<a href=""http://example.gr/\d+/\w+"" rel=""/news_popup.php") Dim match2(links.Count - 1) As String Dim matchesTeams As MatchCollection = Regex.Matches(html, "style=""text-align:right;""><a href=""http://example.gr/\d+/\w+"">Γ") For Each itemcode As Match In matchesTeams Teams(n) = (itemcode.Value.Split(">").GetValue(2)) RichTextBox5.AppendText(Teams(n) & vbNewLine) Next
M2000 Δημοσ. 15 Ιουνίου 2016 Δημοσ. 15 Ιουνίου 2016 To RichTextBox5 παίρνει προφανώς UTF-16LE και εσύ του δίνεις UTF-8 https://msdn.microsoft.com/en-us/library/system.text.encoding.unicode(v=vs.110).aspx αν και νομίζω ότι η αλλαγή πρέπει να γίνει πριν!
Επισκέπτης Δημοσ. 16 Ιουνίου 2016 Δημοσ. 16 Ιουνίου 2016 (επεξεργασμένο) Θα σου πρότεινα να χρησιμοποιήσεις την HttpWebRequest. Ο κώδικας σου θα πρέπει να αλλάξει ως εξής: Dim http As HttpWebRequest = DirectCast(WebRequest.Create(DateString), HttpWebRequest) Dim response As HttpWebResponse = DirectCast(http.GetResponse(), HttpWebResponse) Dim stream As New StreamReader(response.GetResponseStream(), Encoding.UTF8) Dim html As String = stream.ReadToEnd().ToString() Ο κώδικας είναι από C# to VB.NET converter γιατί έχω μαύρα μεσάνυχτα από VB.NET. Επεξ/σία 16 Ιουνίου 2016 από Επισκέπτης
sl028 Δημοσ. 16 Ιουνίου 2016 Μέλος Δημοσ. 16 Ιουνίου 2016 Elorant, είσαι μεγάλος παίχτης! FIY η παράμετρος "encoding.utf8" στη γραμμή Dim stream As New StreamReader(response.GetResponseStream(), Encoding.UTF8) δεν χρειαζόταν διότι το UTF8 αναγνωρίζεται αυτόματα. m2000, ευχαριστώ για την απάντηση 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα