Lettura Carattere da un file di testo

venerdì 13 luglio 2007 - 10.27

Giscotech Profilo | Junior Member

Salve a tutti,
Ho realizzato un software in cui delle tabelle del db vengono aggiornate tramite dei file di testo provenienti da un AS400.
Ora ho un problema:
in fase di registrazione dei record sull'AS400 hanno utilizzato il carattere "ø" nei campi ragione sociale e indirizzo.
Ad esempio per scrivere "XXI° strada" hanno scritto "XXIø strada".

Adesso quando vado a leggere la stringa sul file di testo questo carattere viene completamente ignorato e mi sfalsa tutta la lettura di un carattere.

Qualcuno sa dirmi perchè succede questo e come leggere il carattere?

Grazie

Giuseppe Scordo
Giscotech Informatics

Ciciu Profilo | Senior Member

Ciao.
Premetto di non essere un fenomeno dell'Encoding... Sto ancora cercando di capirlo a fondo.
Però ho fatto una prova, copiando parte del Tuo post, ed ho riprodotto il caso.

Il file src.txt contiene la seguente stringa :
hanno scritto "XXIø strada".

FileStream fsr = File.Open(@"c:\temp\src.txt", FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fsr, Encoding.UTF7);
Console.WriteLine(sr.ReadLine());
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
sr.Close();
fsr.Close();

Leggendolo con queste righe di codice mi sembra funzionare, nel senso che il carattere incriminato viene letto correttamente, quindi è possibile implementare un giro di controllo che, per ogni stringa letta, vada ad effettuare le sostituzioni del caso.
Se in StreamReader non specifichi "Encoding.UTF7", il carattere "incriminato" viene stampato a video (Console Application) con un "?".
Mi sembra di intuire che i files provenienti da AS/400 hanno una codifica "povera" a 7 bit.
Spero di esserTi stato utile.
Ciao - FabioG
Fabio G

Giscotech Profilo | Junior Member

Grazie fabio,
non specificavo l'encoding. Ora è tutto ok.

Grazie ancora.
Giuseppe Scordo
Giscotech Informatics
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