Unicode ...



  • Bei .NET werden char's mit 16 Bit gespeichert.
    Wenn ich in C# eine pure Text-Datei lesen will, muss dann in der zu lesenden
    Datei jeweils ein 00 Byte auf ein (ASCII) Zeichen-Byte folgen ?
    Und wenn ich in C# eine pure Text-Datei schreiben will, werden dann jedem
    ASCII Zeichen ein 00 Byte vorangestellt ?
    Ich habe die Vermutung, dass man so wie früher ASCII Zeichen liest und schreibt,
    und die char's nur intern mit 16 Bit gespeichert werden. Stimmt das ?



  • Und wenn man String's liest und schreibt, dann dürften innerhalb des Strings
    auch keine 00 Bytes gelesen oder geschrieben werden ?



  • Was meinst du mit "pure Textdatei"? Ob ASCII Unicode, UTF oder was weiß ich, das sind doch alles pure Textdateien, was unterschiedlich ist, ist das Encoding. Und genau dass musst du auch beim Programmieren verwenden. Dazu gibts im Framework die Encoding Klasse und Klassen zum Verarbeiten von Textdateien wie z.B. StreamReader oder StreamWriter kann man im Konstruktor das passende Encoding mitgeben. Dann brauchst du dich als Programmierer gar net drum kümmern ob das Zeichen in der Datei jetzt ein Byte oder zwei Byte groß ist, und wie das intern representiert wird.



  • Wie Talla schon andeutete gibt's keine „puren“ Textdateien. Standardmäßig nimmt .NET beim Schreiben und Lesen von Textdateien aber eine UTF-8-Codierung an. Du kannst aber eine eigene Codierung übergeben. Lies aber vorhier diesen Artikel:

    The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)


Anmelden zum Antworten