Ciao a tutti.
Mi sono fatto un paio di funzioncine per scaricarmi il contenuto delle pagine web ed infilarlo in un db.
Per esempio:
function EstraiTesto(link)
Dim objXMLHttp
'Instanzio l'oggetto XMLHttp
Set objXMLHttp = Server.CreateObject("Msxml2.XMLHTTP")
'Costruisco e invio la richiesta
objXMLHttp.Open "GET", link, False
objXMLHttp.Send
'Estraggo la risposta
stringaHTML=(objXMLHttp.responseText)
EstraiTesto=cleanCode(stringaHTML)
'Faccio pulizia
Set objXMLHttp = Nothing
end function
Come vedete esiste una seconda funzione cleancode() che vi spiegherò successivamente... ma il problema esiste già con questa.
In alcuni casi mi sostituisce alcuni caratteri con un "?".
Il fatto è che mi pare ciò avvenga con le lettere accentate... ed ecco la funzione cleanCode() che dovrebbe risolvere il problema.
function cleanCode(stringa)
stringa=replace(stringa,"à","a'")
stringa=replace(stringa,"è","e'")
stringa=replace(stringa,"é","e'")
stringa=replace(stringa,"ì","i'")
stringa=replace(stringa,"ò","o'")
stringa=replace(stringa,"ù","u'")
stringa=replace(stringa,vbtab,"")
stringa=replace(stringa,vbcrlf,"")
stringa=replace(stringa,vblf,"")
stringa=replace(stringa,vbcr,"")
stringa=replace(stringa,vbNullChar,"")
stringa=replace(stringa,vbFormFeed,"")
stringa=replace(stringa,vbVerticalTab,"")
stringa=replace(stringa,"","")
cleanCode=StringaPulita
end function
In realtà cmq il problema non è risolto. Per qualche ragione alcune lettere accentate mi vengono sostituite con il "?".
La cosa non sarebbe grave se non fosse che al momento dell'inserimento nel db (mySQL) mi viene restituito un errore...
ho fatto un left(stringa, i) progressivo, fino ad individuare che quando arrivo al fatidico "?" l'inserimento non funziona più!
quindi, tutto è ok se non ci sono ? mentre appena compare un ? non inserisco più nel db.
Ho provato anche un replace del "?" ma niente, il carattere rimane presente.
Probabilmente è l'oggetto Msxml2.XMLHTTP che non riesce a funzionare correttamente... qualcuno di voi ha avuto lo stesso problema?
grazie,
Cesare


Rispondi quotando