Hm. Evtl vor das sw.Close() noch ein sw.Flush() machen.
Zitat:
Durch Entleeren des Streams wird der zugrunde liegende Encoder nicht entleert, wenn Sie nicht ausdrücklich Flush oder Close aufrufen. Wenn AutoFlush auf true festgelegt ist, werden Daten aus dem Puffer in den Stream weggeschrieben, aber der Encoderzustand wird nicht entleert. Dadurch kann der Encoder seinen Zustand beibehalten (Teilzeichen), um den nächsten Block von Zeichen richtig zu codieren. Dieses Szenario betrifft UTF8 und UTF7, bei denen bestimmte Zeichen nur verschlüsselt werden können, nachdem der Encoder das bzw. die angrenzenden Zeichen empfangen hat.