C# UTF8-Dekodierung, Rückkehr bytes/zahlen anstelle von string

Ich habe ein Problem entschlüsseln einer Datei mit einem UTF8Encoder.

Bin ich das Lesen von text aus einer Datei, die ich habe, codiert in UTF8 (String > Byte)
Sehen Sie die folgende Methode.

public static void Encode(string Path)
    {
        string text;
        Byte[] bytes;
        using (StreamReader sr = new StreamReader(Path))
        {
            text = sr.ReadToEnd();
            UTF8Encoding Encoding = new UTF8Encoding();
            bytes = Encoding.GetBytes(text);
            sr.Close();
        }
        using (StreamWriter sw = new StreamWriter(Path))
        {
            foreach (byte b in bytes)
                sw.Write(b.ToString());
            sw.Close();
        }
    }

Ich dann decodieren Sie mit Hilfe der Methode

    public static String Decode(string Path)
    {
        String text;
        Byte[] bytes;
        using (StreamReader sr = new StreamReader(Path))
        {
            text = sr.ReadToEnd();
            UTF8Encoding Encoding = new UTF8Encoding();
            bytes = Encoding.GetBytes(text);
            text = Encoding.GetString(bytes);
            return text;
        }
    }

Sondern von der Entschlüsselung des byte haben, kommen Sie zurück zum text, es gibt einfach zurück, es als eine Zeichenfolge von zahlen. Ich kann nicht sehen, was ich falsch mache, da ich nicht wirklich viel Erfahrung habe mit diesem ein.

EDIT: um Zu verdeutlichen, was ich versuche zu erreichen. Ich versuche eine text-Datei, speichern Sie den text als Byte, sondern als Zeichen/zahlen. Dies ist eine sehr einfache Verschlüsselung, um die Dateien, so dass Sie nicht ändern können, es sei denn, Sie wissen, was Sie tun. Die Decode-Funktion wird dann verwendet, um den text zu Lesen (bytes) aus einer Datei und machen Sie in lesbaren text. Ich hoffe, dass dies geklärt, was ich versuche zu erreichen.

PS: Sry für keine Kommentare, aber ich denke, es ist kurz genug, um verständlich

du tust b.ToString() - das ist nicht das byte selbst, sondern vielmehr die string-Darstellung. Versuchen Sie es mit einem BinaryWriter?
Ich finde die Verwendung der variable name Encoding sehr verwirrend (und nicht standard) - normale C# Namenskonventionen sind, um es als encoding.
Tut es nicht, Sie zu schlagen, dass etwas ist falsch, wenn Sie mit dem gleichen Aufruf der Funktion (Encoding.GetBytes()) sowohl in der Kodierung und Dekodierung-Seite der Dinge?
Aktualisierte OP um zu verdeutlichen, was ich versuche zu erreichen, auch sortiert die Variablen-Namen, ich habe keine Ahnung, warum ich Sie mit Großbuchstaben.

InformationsquelleAutor PeppeJ | 2012-09-27

Schreibe einen Kommentar