Problema con lettura file e caratteri speciali

di psx2 il
5 risposte
Salve a tutti,
sono nuovo del gruppo quind prima di tutto vorre salutare e ringraziare anticipatamente tutti voi !!
Veniamo al dunque, leggo un file di testo nel seguente modo:
For Each line As String In System.IO.File.ReadLines(nomefile)
nel file è presente il carattere "°" di gradi centigradi ma nella stringa letta mi ritrovo un rombo con un punto intgerrogativo all'interno.
Cercando nel forum ho letto che dovrei leggere il file in binario ma ( essendo neofita ed autodidatta) dio mi complicherebbe un pò la vita !! Vorrei risolvere con un replace ma non saprei come fare ! Avete qualche idea ?
Grazie infinite.

5 Risposte

  • Hai un problema di charset quando leggi il file
    prova con
    For Each line As String In System.IO.File.ReadLines(nomefile, System.Text.Encoding.UTF8)
    oppure prova con
    For Each line As String In System.IO.File.ReadLines(nomefile, System.Text.Encoding.Default)
  • Grazie Sirjo , sei stato gentilissimo,
    ho risolto con "default" !!!!
    Grazie ancora.
  • psx2 ha scritto:


    Grazie Sirjo , sei stato gentilissimo,
    ho risolto con "default" !!!!
    Occhio che l'encoding Default corrisponde all'encoding predefinito a livello di sistema, e quindi potrebbe variare appunto da sistema a sistema.

    Meglio che apri il file con Notepad++ (o equivalente) e ti accerti dell'effettivo encoding utilizzato nel file, specificandolo poi esattamente nel codice.

    Ad esempio, su Windows configurato in italiano, il default dovrebbe essere "windows-1252".

    Meglio se è configurabile dall'esterno.

    Ciao!
  • Come al solito Marco preciso e indispendabile !!
    For Each line As String In System.IO.File.ReadLines(nomefile, System.Text.Encoding.GetEncoding("windows-1252"))
  • Grazie ad entrambe,
    sarà fatto!
Devi accedere o registrarti per scrivere nel forum
5 risposte