Problemas con los acentos.

En un formulario tengo un RichTextBox que utilizo como procesador de textos. El texto que escriba ha se der el cuerpo de un correo. La mécanica que utilizo, para no perder formatos (color del exto, negritas, tablas de excel, etc...) es guardar el contenido en un formato de texto enriquecido (.doc), cuando quiero crear el mensaje, lo que hago es convertir el .doc en .html, luego leo el fichero en una variable string y se lo paso como body al correo. Todo funciona bien, excepto los acentos, es decir, las letras acentuadas desaparecen. He probado el replace
Body = Replace(Body, "á", "á")
Body = Replace(Body, "é", "é")
Body = Replace(Body, "í", "í")
Body = Replace(Body, "ó", "ó")
Body = Replace(Body, "ú", "ú")
pero el problema es que el Body original no trae las letras acentuadas.
Claro al ver el correo las palabras con letras acentuadas están imcompletas.
Te paso el código:
Dim wordApp As New Word.Application
Dim doc As New Word.Document
Dim oWordApplic As New Word.ApplicationClass
doc = oWordApplic.Documents.Open("C:\Fichero.doc")
Dim filename As Object = "C:\Fichero.doc"
Dim Format As Object = Word.WdSaveFormat.wdFormatHTML
doc.SaveAs("C:\Fichero.html", Format)
doc.Close()
oWordApplic.Application.Quit()
Dim sr As New System.IO.StreamReader("C:\Fichero.html")
Body = sr.ReadToEnd()
sr.Close()
Body = Replace(Body, "á", "á")
Body = Replace(Body, "é", "é")
Body = Replace(Body, "í", "í")
Body = Replace(Body, "ó", "ó")
Body = Replace(Body, "ú", "ú")
Despues de esto, el Body no tiene las letras acentuadas.

1 respuesta

Respuesta
¿Qué objeto estás usando para componer el mail?
Se me ocurre que Word no crea un HTML 'Puro' si no un objeto propio con un XML y quizás eso sea lo que te está dando problemas.
Dime el objeto que usas para el mail que pueda hacer alguna prueba, hace tiempo que no toco mapis y demás..
Muchas gracias por tu esfuerzo.
En principio el objeto que utilizo para enviar el correo no es el problema pues, es body ya iba mal, el problema lo he solucionado y estaba en la lectura del html, no en el envío.
En la instrucción Dim sr As New System.IO.StreamReader("C:\Fichero.html"), no indicaba la codificación de caracteres, con esta otra instrucción Dim sr As New System.IO.StreamReader("C:\Fichero.html",System.Text.Encoding.Default) si se lo indico, interpreta correctamente los caracteres acentuado y todo funciona a la perfección.
Reitero, muchas gracias por las molestias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas