Da TXT in Database... e poi in pagina WEB...

martedì 25 novembre 2008 - 18.16

Skini82 Profilo | Newbie

Ciao a tutti ragazzi, non so che pesci pigliare... sono un Novellino di VB.NET e sono in alto mare con quello che sia presumibilmente una cavolata...

Un fornitore mi passa un file .CSV contenente codice e descrizione dei prodotti che fornisce al mio cliente.
Io sto creando un servizio Windows che ogni notte va ad inserire nel database prodotti i nuovi prodotti e la loro descrizione. Il tutto funziona correttamente, MA.... perché c'è sempre un MA! :)
Succede che quando nella mia applicazione web vado a visualizzare il prodotto inserito, ho una sequela di caratteri strani (persino gli apostrofi.. giusto x fare un esempio).
Alché mi son detto, massì niente di grave... è la codifica dei caratteri.... ci ho perso un pomeriggio e non ce ne sono venuto a capo...
Dunque... sto file di testo pare sia codificato in UTF-7.... come ho fatto a scoprirlo? Ho provato ad aprirlo con Word e con UTF-8 mi da lo stesso problema, ma con UTF-7 vedo i caratteri correttamente...
Leggo il file (tralascio il ciclo da inizio file etc) e scrivo nel mio campo DB:

FileTXT = File.OpenText(".\anagraficaEstesa.txt")
StrTMP = FileTXT.ReadLine()
MyRow("Descrizione")=StrTmp

...poi aggiorno il db ecc.. tutto si conclude bene

Ma quando vado a tirar su i dati dal mio sito web, mi appaiono tanti punti di domanda o cose strane sui caratteri speciali....
Ho giocato un po' con l'ENCODING di VB.NET ma non so.. non sono molto esperto quindi mi sa che ho creato del codice FUFFA!

Sono nelle vostre mani gente!
Grazie per l'aiuto in anticipo!
Sk

---------------------------------------
UPDATE - PROBLEMA RISOLTO!
---------------------------------------

Niente ragà.. torvato la soluzione!

In sostanza l'unica cosa da cambiare è l'apertura del file, che invece di essere come quella sopra postata diventa:

FileTXT = New StreamReader(".\miofile.txt", Encoding.UTF7)

In sostanza File.OpenText è un po' ignorante come apertura perché si comporta come blocco note di windows.. se non è nel suo formato ti tira su caratteri a caso (usa UTF-8 se non erro, che comunque va bene nella maggior parte dei casi)!
Invece con StreamReader posso decidere la codifica con cui leggere il file.

Quindi mio consiglio è prima provare con file.opentext, se si visualizzano caratteri strani xché la codifica è diversa, implementare streamreader con la codifica adeguata.

Magari era una boiata ma se qualche altro novellino ne avrà bisogno non dovrà sbattersi a capirlo quanto me
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5