Forum: PC-Programmierung c# streamwriter umlaute


von grundschüler (Gast)


Lesenswert?

hallo,

problem mit c#-streamwriter:

output_file.WriteLine(txt, Encoding.GetEncoding(850));

txt = "Summe  netto E19       0,00 €"

wird zu

Summe  netto E19       0,00 €

Wie bringe ich den streamwriter dazu, den deutschen Zeichensatz zu 
verwenden?

Danke für Unterstützung

von Jim M. (turboj)


Lesenswert?

Windows Encoding != DOS Encoding.

Mit welchem Programm wird das .txt weiter verarbeitet? Bei notepad würde 
ich eher UTF-8 bentuzen (mit BOM).

von Yalu X. (yalu) (Moderator)


Lesenswert?

Der Text liegt offensichtlich in UTF-8-Kodierung vor. Da CP850 kein '€'
enthält, werden die drei UTF-8-Bytes 0xE2, 0x82 und 0xAC vermutlich
einfach beibehalten.

Zur Anzeige der geschriebenen Datei verwendest du offensichtlich ein
Tool, das die Windows-1252-Kodierung verwendet. Dort entsprechen die
drei Bytes den Zeichen 'â', '‚' (einfaches Anführungszeichen) und '¬'.

Wahrscheinlich  werde ich es nicht mehr erleben, dass Microsoft diesen
endlosen Kauderwelsch von Zeichenkodierungen, die teilweise noch auf
MSDOS zurückgehen, bereinigt :)

von c-hater (Gast)


Lesenswert?

grundschüler schrieb:

> output_file.WriteLine(txt, Encoding.GetEncoding(850));
>
> txt = "Summe  netto E19       0,00 €"
>
> wird zu
>
> Summe  netto E19       0,00 €
>
> Wie bringe ich den streamwriter dazu, den deutschen Zeichensatz zu
> verwenden?

Wenn dein Windows "europäische" Locales verwendet, dann einfach durch

output_file.WriteLine(txt, Encoding.Default);

wenn nicht, kannst du dasselbe durch

> output_file.WriteLine(txt, Encoding.GetEncoding(1252));

erreichen.

von grundschüler (Gast)


Lesenswert?

das war schon mal alles hilfreich.

1
             var printProcess = new Process();
2
               printProcess.StartInfo.FileName = Path.Combine(docPath, "EA_" + listBox1.SelectedItem);
3
               printProcess.StartInfo.UseShellExecute = true;
4
               printProcess.StartInfo.Verb = "print";
5
               printProcess.Start();

Problem ist nicht das Erstellen der Datei sondern nur der Ausdruck der 
Datei!

im Editor wird alles richtig angezeigt. Gedruckt wird anscheinend mit 
Wordpad. Ändern in "Dateieigenschaften"/"öffnen mit" behebt das Problem.

danke

von nicht"Gast" (Gast)


Lesenswert?

grundschüler schrieb:
> Gedruckt wird anscheinend mit Wordpad.

Wer macht denn so was? Drucken mit C# ist ja nun nicht so schwer.

von c-hater (Gast)


Lesenswert?

nicht"Gast" schrieb:

> Wer macht denn so was?

Jemand, der keine Ahnung hat von dem, was er da tut. C&P-"Programmierer" 
halt...

> Drucken mit C# ist ja nun nicht so schwer.

Kommt drauf an, wie genau man druckt. Man kann es sich sehr einfach 
machen und ziemlich gräuliche Drucke erzielen oder man kann etwas mehr 
Code investieren und perfekte Drucke erhalten. Zumindest letzteres 
erfordert schon merklich umfangreicheren Code als ein Shell-Aufruf.

von grundschüler (Gast)


Lesenswert?

nicht"Gast" schrieb:
> Wer macht denn so was? Drucken mit C# ist ja nun nicht so schwer.

c# druckt mit wordpad weil wordpad als standardprogramm  für 
*.txt-Dateien eingestellt war. Frag mich nicht warum.

von c-hater (Gast)


Lesenswert?

grundschüler schrieb:

> c# druckt mit wordpad weil wordpad als standardprogramm  für
> *.txt-Dateien eingestellt war. Frag mich nicht warum.

OMG...

Mehr kann man zu diesem Statement wohl kaum sagen...

von h4x0r (Gast)


Lesenswert?

Das kommt davon, wenn man eine grottige Programmiersprache wie C# 
benutzt. Bei modernen fortschrittlichen Programmiersprachen hat man 
deutlich weniger Probleme mit UTF8.

von c-hater (Gast)


Lesenswert?

h4x0r schrieb:
> Das kommt davon, wenn man eine grottige Programmiersprache wie C#
> benutzt. Bei modernen fortschrittlichen Programmiersprachen hat man
> deutlich weniger Probleme mit UTF8.

OMG...

Mehr kann man zu diesem Statement wohl kaum sagen...

von Donni D. (Gast)


Lesenswert?

h4x0r schrieb:
> Das kommt davon, wenn man eine grottige Programmiersprache wie C#
> benutzt. Bei modernen fortschrittlichen Programmiersprachen hat man
> deutlich weniger Probleme mit UTF8.

Welche sollen das denn sein?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.