Problema con caracteres especiales

Iniciado por rapbyone, 7 Septiembre 2015, 06:11 AM

0 Miembros y 1 Visitante están viendo este tema.

rapbyone

Estimados, al extraer el código de fuente de una web y al cargarlo en un textbox, aparecen unos caracteres en los tildes y en algunas letras especiales, el tema es que lo he solucionado remplazando los caracteres, pero es algo tedioso hacerlo uno por uno.

Hay alguna forma de evitar que se carguen los caracteres que reemplazan los tildes en el textbox.

Atento a sus comentarios
gracias amigos

Lekim

#1
No recuerdo muy bien pero creo que tenía que ver con el formato de código del archivo que tratas de leer. Si no me equivoco la página en html es UTF-8 y tratas de leerlo como ANSI. O puede que fuera al revés  :silbar:

El caso es que por ahí van los tiros. Tengo este código que quizás te sirva. Usa URLDownloadToFile, para guardar la página y luego Open yt For Input As , para crear un archivo TXT (TempFile.txt) en el formato correcto y leer la página web correctamente cargándola en la memoria, para luego ser introducida en un TextBox.

Código (vb) [Seleccionar]
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Function DownloadFile(ByVal sURL As String, ByVal sLocalFile As String) As Boolean
   DownloadFile = URLDownloadToFile(0, sURL, sLocalFile, 0, 0) = ERROR_SUCCESS
End Function
Public Function GetCodeWeb(ByVal strHtmlDir As String)
   Dim sSourceUrl As String
   Dim sLocalFile As String
   Dim hfile As Long
   Dim buff As String
   Dim pos1 As Long
   Dim pos2 As Long
   sSourceUrl = strHtmlDir
   sLocalFile = App.Path & "\TempFile.txt" 'Archivo temporal donde se guardará la página web
   Call DeleteUrlCacheEntry(sSourceUrl)
   If DownloadFile(sSourceUrl, sLocalFile) Then
       hfile = FreeFile
       Open sLocalFile For Input As #hfile
       buff = Input$(LOF(hfile), hfile)
       Close #hfile
       If buff = "" Then
           GetCodeWeb = "No se ha podido conseguir el código Html"
       Else
           GetCodeWeb = buff
       End If
       'Kill sLocalFile
   Else
      GetCodeWeb = "No se ha podido conseguir el código Html"
   End If
End Function

Private Sub Command1_Click()
Call DownloadFile("http://www.marca.com/futbol.html", "C:/01.html")  'Descarga  la web
Text1.Text = GetCodeWeb("E:/01.html") 'Obtiene el código Html
End Sub


Como ves en la función DownloadFile guarda la página en C: ("C:/01.html"), si tu windows protege este directorio tendrás que elegir otro ¿ok?


Por cierto, DownloadFile sólo guarda la página principal, pero NO los archivos dependientes  como imágenes o Scripts. Puedes usar WebBrowser en lugar de DownloadFile.

rapbyone

Perfecto, gracias estimado, tema resuelto

Enviado desde mi LG-D805 mediante Tapatalk