tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
6915
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    adilosch adilosch ist offline Rookie
    Registriert seit
    Apr 2005
    Beiträge
    7
    Hallo,
    Ich bin ganz neu bei c#,

    Ich versuche ein Textdatei kontrolieren ob, unicode ist, falls nicht als Unicode zu speichern!

    Kann jemand mir helfen?

    Ich freue mich sehr!
     

  2. #2
    Avatar von Niro99
    Niro99 Niro99 ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    54
    Hallo adilosch!

    Nicht dass ich dir den ganzen Lerneffekt wegnehmen möchte, aber dein Problem mit den Codierungen hat mich auch gerade interessiert.

    Anbei der Code (sollte laufen):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    private void button1_Click(object sender, System.EventArgs e)
    {
        [COLOR=Green]// Textdatei öffnen[/COLOR]
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Title = "Textdatei wählen...";
        ofd.Filter = "Textdatei (*.txt)|*.txt";                     
        ofd.FilterIndex = 1;
        if( ofd.ShowDialog() != DialogResult.OK )   
            return; 
     
        [COLOR=Green]// Aktuelle Codierung bestimmen[/COLOR]
        StreamReader reader = File.OpenText(ofd.FileName);
        if (reader.CurrentEncoding == System.Text.Encoding.Unicode)
            return;
            
        ArrayList al = new ArrayList();
        string s;
                        
        while ((s = reader.ReadLine()) != null)
        {
            al.Add(s);
        }
        reader.Close();
     
        [COLOR=Green]// Stream mit der zu verwendenden Codierung definieren[/COLOR]
        FileStream fs = File.OpenWrite(ofd.FileName);
        StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.Unicode);
        foreach (string t in al)
        {
            writer.WriteLine(t);
        }
        writer.Close();
    }
     
    So einfach wie möglich. Aber nicht einfacher!
    Albert Einstein

  3. #3
    adilosch adilosch ist offline Rookie
    Registriert seit
    Apr 2005
    Beiträge
    7
    Danke Niro,

    Das hat mir sehr geholfen.Ich habe meine Fehler gut korrigiert.Das war genau was ich wollte.

    Ich bedanke mich sehr!
     

  4. #4
    h1tm4n h1tm4n ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    9
    Hallo. Ich wollte keinen neuen Thread öffnen, da mein Problem ähnlich ist.

    Problem: Ich will eine Unicode (UTF-16) Datei erstellen aber die Datei ist immer ASCII. Sprich ich kann sie mit notepad öffnen und sehe einen stinknormalen Text.

    Code:

    Code :
    1
    2
    3
    
        StreamWriter sw = new StreamWriter("./tagopen.txt", false, System.Text.Encoding.GetEncoding("utf-16"));
        sw.Write("<" + args[0] + ">");
        sw.Close();

    Wenn ich das Programm mit "tagwriter.exe test" ausführe, dann steht in der Datei "<test>" (ohne Apostrophe). Eigentlich müsste aber jedes Zeichen durch 2 Bytes dargestellt werden (da ja UTF-16 und nicht UTF-8).

    Muss ich irgendwas nachinstallieren, damit das geht? Kann ich mir fast nicht vorstellen.
     

  5. #5
    h1tm4n h1tm4n ist offline Rookie
    Registriert seit
    Dec 2007
    Beiträge
    9
    Ich habe jetzt folgendes erfolgreich probiert:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    // String in eine Byte-Array umwandeln
    byte[] baASCIIArgs0 = Encoding.ASCII.GetBytes(args[0]);
    byte[] baUTF16Args0 = Encoding.Convert(Encoding.ASCII, Encoding.Unicode, baASCIIArgs0);
    // Erstelle UTF-16 Datei
    FileStream fs = File.Create("./tagopen.txt");
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(baUTF16Args0);
    bw.Close();
    fs.Close();

    Notepad zeigt zwar noch immer nur "test" an, aber wordpad zeigt alle 8 Bytes an.
     

Ähnliche Themen

  1. Unicode-Fehler
    Von skaoson im Forum C/C++
    Antworten: 11
    Letzter Beitrag: 30.04.10, 09:55
  2. Unicode / Sonderzeichen
    Von cxycxy im Forum Typografie
    Antworten: 1
    Letzter Beitrag: 09.02.10, 17:17
  3. Unicode
    Von liquidbeats im Forum PHP
    Antworten: 4
    Letzter Beitrag: 30.04.07, 00:52
  4. Unicode?
    Von Caruso_Nix im Forum Java
    Antworten: 5
    Letzter Beitrag: 11.03.05, 09:25
  5. Unicode oder Unicode nicht
    Von Trivalik im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 09.12.04, 15:02