06 febrero 2012 16:39 by daniel.comas
Puede que alguna vez nos hayamos encontrado con problemas de símbolos (tildes, ñ, espacios,…) cuando queremos abrir un fichero en una página.

El problema viene porque cada navegador tiene una forma diferente de codificar el contenido. Para solucionarlo realizamos un método que adjuntará un archivo PDF (Testeado con IE, Firefox, Safari, Chrome y Opera):
Protected Sub OpenReportInBrowser(ByVal filename As String, ByVal stream As System.IO.MemoryStream)
Dim contentDisposition As String = ""
If Request.Browser.Browser = "Firefox" Then
contentDisposition = "attachment; filename*=UTF-8''" + Uri.EscapeDataString(filename)
ElseIf Request.Browser.Browser = "Safari" Then
contentDisposition = "attachment; filename=" + filename
Else
contentDisposition = "attachment; filename=" & Uri.EscapeDataString(filename) & ".pdf"
End If
Response.ContentType = "application/pdf; charset=utf-8"
Response.AddHeader("content-type", "application/pdf; charset=utf-8")
Response.AddHeader("Content-Disposition", contentDisposition)
Response.AddHeader("content-length", stream.Length.ToString())
Response.BinaryWrite(stream.ToArray())
Response.End()
End Sub
Una vez resuelto:

Si nos aparece este error: The message received from the server could not be parsed y tenemos un UpdatePanel, consultar aquí.