Les cuento mi tema debo obtener la salida HTML de un asp y despues unirlo con un css lo cual lo realizo bien, el problema creo q son los acentos o caracteres extraños que no soporta y me envía un error asp.Otro punto importante que he cambiado ya varias veces la codificacion(ISO-8859-1, UTF-8) ambas iguales en cada lado y nada. A veces me funciona cuando trabajo con utf-8 supuestamente no me envia error asp pero solamente me muestra en un archivo html aparte solo la mitad del informe, pero en el navegador se ve completo y al tracear con firebug sale los css externos con códigos de lenguaje chino. bueno les dejo mis codigos
P.D: el informe tiene varios include html solo muestro una parte y tambi'en los css tienen declarada su codificacion.
Código HTML:
Ver original
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link href="css/estilos_rep34.css" rel="stylesheet" type="text/css" /> <link href="css/css_nuevo.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> function nuevoAjax(){ var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function Carga(){ var strUrl = document.URL; strUrl = strUrl.toString(); peticion = nuevoAjax(); peticion.open("GET", "crear_informe_estatico.asp?intCodColegio="+<%=Request("codigocolegio")%>+"&url="+strUrl, true); peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=iso-8859-1'); peticion.onreadystatechange = function () { /* if (peticion.readyState == 4) { document.getElementById('resultado').innerHTML = peticion.responseText; } */ } peticion.send(null); } </script> <body onLoad="Carga();"> </body> </html>
Código ASP:
Ver original
'Response.AddHeader "Content-Type", "text/html; charset=utf-8" Dim objXML, strUrl, objHTML, objCSS, strInforme, strCSS, strHTML, strBody, i Const ForReading = 1, ForWriting = 2 Set objXML = Nothing Set fso = Nothing 'strUrl = "http://192.168.2.64:83/oscar/informefinal/02.1_CRITERIOS.asp?codigocolegio=19012087" strUrl = Request("url") Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists( Server.MapPath( Request("intCodColegio") & ".html" ) ) = False And Request("intCodColegio") <> Empty Then Call crear_informe( strUrl, fso ) End If 'Procedimiento generador de informe Sub crear_informe( strUrl, fso ) 'Set objXML = Servger.CreateObject ("Microsoft.XMLHTTP") Set objXML = Server.CreateObject ("MSXML2.ServerXMLHTTP") 'Set objXML = Server.CreateObject ("MSXML2.XMLHTTP.3.0") 'Set objXML = Server.CreateObject ("MSXML2.XMLHTTP.4.0") If Err then Response.write "Error: " & Err.Description End if objXML.Open "GET", strURL, false, "", "" Response.Charset = "ISO-8859-1" objXML.send If objXML.Status >= 400 And objXML.Status <= 599 Then Response.write "Error al obtener página: " & objXML.Status & " - " & objXML.statusText Else ResponsePage = objXML.ResponseText End If 'Quita llamado a funcion para no volverse a autollamar ResponsePage = Replace( ResponsePage, "Carga();", "" ) Set f = fso.CreateTextFile(Server.Mappath("informe_intermedio.html"), True, True) 'Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1" f.Write ResponsePage Response.Flush() f.Close Set objXML = Nothing End Sub
Nota: Cuando cambio en el codigo asp el segundo atributo de la funcion CreateTextFile de False a True me genera el informe pero incompleto bajandolo desde el server ftp pero en el navegador completo pero como les decia anteriormente con codigos raros en el llamado a los css externos.
Esperando su ayuda ya que esto me tiene de cabeza.
Gracias