Announcement

Collapse
No announcement yet.

TextReader kennt keine Umlaute?!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TextReader kennt keine Umlaute?!

    Hallo,

    ich benutze zum einlesen einer Text-Datei einen TextReader. Jetzt stelle ich mit Schrecken fest daß dieser die Umlaute (+ Sonderzeichen wie ß nehme ich an) 'verliert'?!

    Kann ich ihm nen anderen Zeichensatz bzw eine andere Codierung statt UTF-8 'beibringen'?
    Oder gibt es ne andere Möglichkeit?

  • #2
    Hallo Reiko!

    Dem gleichen Schrecken war ich vor einigen Wochen ebenfalls ausgesetzt.
    Habe ebenfalls versucht irgendwie dem beizubringen einen anderen Codierungssatz zu verwenden - leider vergebens, so musste ich wieder auf die guten alten Möglichkeiten des FileOpen, LineInput, FileClose mit Dateinummern zurückgreifen.
    Beim genaueren lesen der Dokumentation wird einem eh empfohlen, die guten alten Methoden zu verwenden, weil sie performanter seien.

    Schöne Grüße

    Cordt Bie

    Comment


    • #3
      Hallo,

      auch Umlaute lassen sich verarbeiten, wie das folgende Beispiel zeigt:
      <pre>
      FileStream aFS = <b>new</b> FileStream(sFile, FileMode.Open, FileAccess.Read);
      StreamReader aSR = <b>new</b> StreamReader(aFS, <b>new</b> System.Text.UTF8Encoding());
      textBox2.Text = aSR.ReadLine();
      aSR.Close();
      </pre>
      Die wichtige Frage dabei ist, in welcher Form die Zeichen (Umlaute) <b>vorher</b> in der Datei abgelegt wurden. Zum Beispiel könnte man dazu den Aufruf <i>System.Text.Encoding.GetEncoding(65001).GetByte s(sInput)</i> verwenden, um UTF-8 zu schreiben. Es gibt aber auch noch andere Alternativen:
      <pre>
      System.Text.Encoding.GetEncoding:
      - 1200 for little-endian Unicode (UTF-16LE);
      - 1201 for big-endian Unicode (UTF-16BE);
      - 1252 for Windows operating system (windows-1252);
      - 65000 for UTF-7;
      - 65001 for UTF-8;
      </pre&gt

      Comment

      Working...
      X