Laden...

Textdatei aus dem Web mit HttpClient einlesen, Problem mit Umlauten

Erstellt von Pat vor 2 Jahren Letzter Beitrag vor 2 Jahren 538 Views
Pat Themenstarter:in
34 Beiträge seit 2006
vor 2 Jahren
Textdatei aus dem Web mit HttpClient einlesen, Problem mit Umlauten

Hallo,
Ich versuche eine Textdatei aus meinem Webspace mit HttpClient in eine Multiline Textbox einzulesen. Nun werden sowohl der Zeilenumbruch und die Umlaute nicht richtig gelesen.
Den Zeilenumbruch \n kann ich mit einem Regex in \r\n umwandeln. Aber für die Umlaute finde ich keine Lösung. Anstatt 'ä' wird ein char mit dem Wert 65533 ausgegeben.
Wenn ich die URL der Textdatei im Webbrowser eingebe, wird der Text dort richtig angezeigt.

Was mache ich falsch?

Danke und Gruss Patrick


        // lokale Datei wird richtig angezeigt
        private void button1_Click(object sender, EventArgs e)
        {
            string file = "D:\\Programmieren\\Test\\ReadMe.txt";
            textBox1.Text = File.ReadAllText(file, System.Text.Encoding.Default);
        }

        // Probleme mit Zeilenumbruch und Umlaute
        private void button2_Click(object sender, EventArgs e)
        {
            string link_ReadMe = "http://myServer.com/myUser/Project/ReadMe.txt";
            HttpClient client = new HttpClient();
            string result = client.GetStringAsync(link_ReadMe).Result;
            result = Regex.Replace(result, "(?<!\r)\n", "\r\n");
            textBox1.Text = result;
        }


16.835 Beiträge seit 2008
vor 2 Jahren

.Result ist so mit das Schlimmste, was man mit Tasks machen kann.
https://enterprisecraftsmanship.com/posts/pitfalls-of-async-await/
Warum verwendest Du kein async await?

Auch soll man den HttpClient nicht dauernd neu instanziieren, steht dick markiert in den Docs
HttpClient Klasse (System.Net.Http)

HTTP-Kommunikation verwendet i.d.R. UTF-8 Encoding.
Ergo musst Du auch damit arbeiten bzw. mit der Info, die Dir der Webserver (durch die Header) liefert.
Liste der HTTP-Headerfelder

Pat Themenstarter:in
34 Beiträge seit 2006
vor 2 Jahren

Das ist nur ein erstes Testprogramm, um einen Codeschnippel auszuprobieren.

16.835 Beiträge seit 2008
vor 2 Jahren

Hindert einen ja nich, das trotzdem richtig zu machen.