Lesen von Dateien im Binärformat

27/11/2007 - 19:04 von Stefan Braumeister | Report spam
Hallo NG,

ich hab Probleme beim Lesen einer Datei:

using (FileStream fs = File.Open(file, FileMode.Open, FileAccess.Read,
FileShare.Read))
{
BinaryReader r = new BinaryReader(fs);
char[] carray = new char[256];
carray = r.ReadChars(128);
string inf = new String(carray);

MessageBox.Show(inf);
}

inf enthàlt jetzt aber keine Umlaute. Die Datei ist eine Binàrdatei, die
darin enthaltenen Zeichen am Anfang der Datei sind ASCII, mit C++
geschrieben, mit PHP kann ich sie auch ganz einfach auslesen.

Ich habs auch schon mit ASCIIEncoding und fs.read probiert klappte auch
nicht.

Wie liest man sowas richtig?

Gruß Stefan
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
27/11/2007 - 21:10 | Warnen spam
"Stefan Braumeister" schrieb:
ich hab Probleme beim Lesen einer Datei:

using (FileStream fs = File.Open(file, FileMode.Open, FileAccess.Read,
FileShare.Read))
{
BinaryReader r = new BinaryReader(fs);
char[] carray = new char[256];
carray = r.ReadChars(128);
string inf = new String(carray);

MessageBox.Show(inf);
}

inf enthàlt jetzt aber keine Umlaute.



ASCII enthàlt keine Umlaute!

Die Datei ist eine Binàrdatei, die
darin enthaltenen Zeichen am Anfang der Datei sind ASCII, mit C++
geschrieben, mit PHP kann ich sie auch ganz einfach auslesen.

Ich habs auch schon mit ASCIIEncoding und fs.read probiert klappte auch
nicht.



Wo/wie hast Du es probiert?

Da Umlaute vorkommen, ist die Datei wahrscheinlich mit der
Windows-ANSI-Codepage des Systems codiert. In diesem Fall kannst Du als
Codierung 'Encoding.Default' oder
'Encoding.GetEncoding(<Windows-ANSI-Codepage>)' als Codierung übergeben.
Wenn die Zeichen ASCII-codiert sind, dann sollte ein '... = new
BinaryReader(fs, Encoding.ASCII)' ausreichend sein (in Deinem Fall offenbar
nicht der Fall).

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen