Announcement

Collapse
No announcement yet.

Umlaute in Textdatei schreiben...

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

  • Umlaute in Textdatei schreiben...

    Moinsen,<br>
    <br><br>
    ich habe folgendes Problem:<br>
    <i>Quelltext:</i><br><br>
    string datei = "C:\\text.txt";<br>
    FileStream fs = new FileStream(datei, FileMode.Create, FileAccess.ReadWrite);<br>
    StreamWriter w = new StreamWriter(fs);<br>
    w.BaseStream.Seek(0,0);<br>
    w.Write("äöü");<br>
    w.Flush();<br>
    w.Close();<br>
    <br><br>

    In meiner Textdatei erscheint dann folgendes:<br>
    äöü<br>
    <br>

    Wie bekomme ich es hin, dass dort wirklich äöü steht?
    Jemand ne Idee?

    MfG
    Micha

  • #2
    Achja...ich hatte vergessen zu erwähnen, dass im NotePad die äöü Zeichen richtig angezeigt werden. Allerdings wenn man sich das im HexFormat anguckt, steht das nicht so da!!!

    MfG

    Mich

    Comment


    • #3
      Deine Textdatei wurde UTF-8-Codiert abgespeichert.
      Wenn du das Encoding selbst angeben willst mußt du das Encoding-Property setzen:

      z.B.<br>
      StreamWriter.Encoding = System.Text.ASCIIEncoding

      Comment


      • #4
        Danke schonmal...<br>
        Nun folgendes Problem:<bR>
        <Br>
        FileStream fs = new FileStream(datei, FileMode.Create, FileAccess.ReadWrite);<br>
        StreamWriter w = new StreamWriter(fs);<br>
        <br>
        Wenn ich nun <br>
        w.Encoding = System.Text.ASCIIEncoding;<br>
        mache, sagt .NET mir, dass es ReadOnly ist... <br>
        <br>
        Ne Idee? <Br>
        Entspricht ASCIIEncoding denn dem Zeichensatz ISO8859-1 ? <br&gt

        Comment


        • #5
          grrr. ist nur ein ReadOnly-Property

          Dann sollte es über den Construktor gehen:

          StreamWriter w = new StreamWriter(fs, System.Text.ASCIIEncoding);

          Aber ich hab mal in der MSDN nachgesehen unter Encoding (ms-help://MS.MSDNQTR.2002APR.1033/cpref/html/frlrfsystemtextencodingclasstopic.htm).

          Es wird bei Ascii nur 7-Bit Ascii unterstützt. D.h für dich unbrauchbar. Und da nur die Codierungen ASCIIEncoding,UnicodeEncoding, UTF7Encoding, UTF8Encoding unterstützt werden kannst Du m.E. mit dieser klasse die gewünschte Textdatei nicht erstellen. Hier must du. evtl. auf Byte-gefummele zurückgreifen (Frag mich aber nicht wie das geht. Bin Delphi-Entwickler und Schnuppere bisher nur so in .NET hinein.

          Comment


          • #6
            Des Rätsels Lösung ist folgende:
            Man nehme eine RichtextBox, schreibe dort seinen Text rein. Und nutze dann die Funktion

            SaveFile("C:\\temp.txt", RichTextBoxStreamType.PlainText)

            und siehe da...man hat das richtige Zeichenformat

            Trotzdem danke für deine Hilfe

            Comment


            • #7
              Hi,

              also bei mir geht das mit dem Streamwriter und dem Default Encoding ohne Probleme. Umwege wie über eine Richtextbox muss ich gott sei dank nicht gehen, zumal es ne asp.net Anwendung ist

              Comment


              • #8
                Hi,

                es ging hauptsächlich darum, dass die Dateien im Hex-Editor falsche Zeichen beinhalten.

                Der "Umweg" über die Richtextbox war für mich die einfachste und schnellste Lösung..

                Comment

                Working...
                X