Cambiar codificación de archivo c#.NET

NeB1

Tengo un programa que crea un archivo .vcf (vcard, que al fin y al cabo es un archivo de texto plano), y lo crea guay, y el contenido que crea, si abres el archivo con NotePad++ se vé de lujo, sin embargo al abrirlo con el Outlook (para visualizar la VCard), los carácteres especiales (acentos y eñes) se ven xungos.

Al abrirlo con el Notepad++, si le doy a formato, me dice que está codificado en UTF-8 sin BOM. Si lo pongo en UTF-8, directamente no me lo abre el outlook, sin embargo, si lo meto como ANSI, vá perfecto.

Para hacer esto en c#.NET no hay ningún método que se aplique a todo un fichero, o tengo que leer byte a byte el fichero y hacer la conversión?

Soltrac

Como creas el archivo? Si es con StreamWriter puedes elegir la codificación sin problemas.

NeB1

#2 hago uso de una librería externa para parsear una vcard. Pero puedo re-leer el archivo, guardar el contenido en un buffer y sobreescribirlo con un streamwriter eligiendo la codificación :S voy a probar a ver

NeB1

Al final he hecho eso, despues de que la librería en cuestión crea el fichero, he guardado el contenido en un buffer, y he creado un streamwriter que sobreescribe el fichero con la codificación adecuada. Es un poco chapuza, lo suyo será que cuando tenga más tiempo, busque en el código fuente de la librería esta, la función que crea el fichero y recompilar el dll.

Pero bueno, almenos de momento funciona bien, thanks!

Usuarios habituales

  • NeB1
  • Soltrac