StringWriter sa používa vtedy, keď chceš výsledok zapísať do reťazca v pamäti - všetky reťazce sú interne kódované v UTF-16 a to sa nedá zmeniť. Na zapisovanie do súboru je StringWriter nevhodný, pretože jeho kódovanie nemôžeš zmeniť.
Ak chceš zmeniť kódovanie, tak použi objekt triedy Stream. Potom kódovanie nastavíš v konštruktore triedy XmlTextWriter.