Kurioser Fehler mit Umlauten

  • 4 Antworten
  • Letztes Antwortdatum
kukuk

kukuk

App-Anbieter (kostenlos)
37
Hallo alle mit einander, ich habe mal wieder einen Fehler der mich jetzt wieder ca. 4h gekostet hat.

Mit vb.net 2008 erzeuge ich einen Datei die ich auf meinem Server hochlade.

Mit folgendem Code speichere ich die Datei ab.

File.WriteAllText(Application.StartupPath & "\developer_message.dat", frm_start.TextBox3.Text & vbNewLine & frm_start.TextBox4.Text, System.Text.Encoding.Default)

In Android lade ich diese vom Server herunter und lasse sie in einer Alertbox ausgeben. Was mir aufgefallen ist, das die Umlaute nicht dargestellt werden.

Wenn ich in VB.net System.Text.Encoding.UTF-8 auswähle ist die Datei überhaupt nicht mehr lesbar.
Mit Android habe ich jetzt einen Weg gefunden um an die Umlaute ranzukommen.

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "Cp1250"));

Hat jemand eine Idee was ich vielleicht falsch mache?
 
Da du sehr wahrscheinlich einen Windows-Rechner hast, lad dir mal Note++ runter. Dort kannst du das Encoding der Datei ansehen und ggf. ändern.
Dann kannst du das neue Encoding ja mal mit deiner Android-Lösung runterladen und schauen, ob es angezeigt wird.

Fehlende Umlaute sind leider FAST immer ein Encoding-Problem. Wie du es ja schon ein wenig herausgefunden hast.
 
Danke für eure Antworten, utf 8 hab ich schon eingestellt. Wie oben geschrieben ist die Datei danach überhaupt nicht mehr lesbar. Mit notepad++ habe ich auch schon ausprobiert. Da muss ich Windows 1250 auswählen damit die Umlaute angezeigt werden.
 
a) Das default System Encoding zu nehmen ist nie eine gute Idee -> ziehst du den Server um, kann es gut sein, dass auf einem neuen System ein anderer Default gesetzt ist.
b) Wenn du mit UTF-8 die Datei rausschreibst und in Android mit UTF-8 einliest dann sollte es gehen. Wenn nicht wird irgendwo auf dem Übertragungsweg nochmal am Encoding rumgefummelt, das sollte nicht sein.
 
Zurück
Oben Unten