Foros del Web » Programando para Internet » ASP Clásico »

Porque me sale "?" al sacar el código fuente?

Estas en el tema de Porque me sale "?" al sacar el código fuente? en el foro de ASP Clásico en Foros del Web. Hola gente que tal? tengo un problemilla, ya puse algo sobre el tema en el foro de asp, pero ahora me ha surgido otro. Consigo ...
  #1 (permalink)  
Antiguo 06/03/2006, 05:09
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
Porque me sale "?" al sacar el código fuente?

Hola gente que tal? tengo un problemilla, ya puse algo sobre el tema en el foro de asp, pero ahora me ha surgido otro. Consigo sacar el código fuente de las páginas web, pero no se porque en algunas de ellas las ñ que esán puestar a mano y no con &ntilde y los acentos que no están puestos con acute no me aparecen y me aparece una interrogación, porque puede ser esto? por ejemplo en la página web de www.elpais.es me sale todo perfecto con acentos y ñ inlcuidas, pero cuando lo hago por ejemplo en www.elmundo.es no se porque carajos me aparece mal, os dejo el código por si quereis verlo, esta es a funcion a la que llamo para que me de el código fuente:
Código:
	on error resume next
	Dim objXMLHTTP, xml
	Set xml = Server.CreateObject("MSXML2.XMLHTTP")
	xml.Open "GET", strURL, False
	xml.Send
	cadena = Cstr(xml.responseText)
	Response.Write(cadena)
espero que podais ayudarme, muchas gracias, un saludo pa todos.
  #2 (permalink)  
Antiguo 06/03/2006, 06:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
Es por la codificación de caracteres del documento que la debe estar cargando como utf-8. ¿Ya la especificas dentro del código html? debes indicar una codificación iso-8859-1
  #3 (permalink)  
Antiguo 07/03/2006, 02:49
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
Te importaria especificarme un poco mas como tendría que hacer eso por favor? muchas gracias ciao
  #4 (permalink)  
Antiguo 07/03/2006, 03:13
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
Claro, verifica que en tu documento tengas incluída esta directiva meta

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

con eso le indicas al navegador el juego de caracteres que debe usar
  #5 (permalink)  
Antiguo 07/03/2006, 03:24
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
No me funciona es un programa en asp, no en html no tendra nada que ver para que me siga pasando lo mismo aun poniendo esa etiqueta?
  #6 (permalink)  
Antiguo 07/03/2006, 05:13
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
Pero el resultado en dónde lo visualizas?
  #7 (permalink)  
Antiguo 07/03/2006, 05:21
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
lo visualizo en ie o firefox, y me aparece la pagina web de la url que le meto pero con las ? que te digo mira ejecuta este codigo tal cual y lo veras:
Código:
<%
	link="http://www.elmundo.es"
	GetText  link

function GetText (link)
        on error resume next
	Dim objXMLHTTP, xml
	Set xml = Server.CreateObject("MSXML2.XMLHTTP")
	xml.Open "GET", strURL, False
	xml.Send
	cadena = Cstr(xml.responseText)
	Response.Write(cadena)
end function
%>
bueno mi codigo tiene muchas mas cosas pero el problema de las interrogaciones esta aqui a la hora de sacar el codigo fuente, ejecutalo si no te importa y veas que te salen acentos y ñ's que no han sido puestos con acute o &ntilde cambiados por una "?"
  #8 (permalink)  
Antiguo 07/03/2006, 05:23
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
ok, no importa que uses asp, lo que le llega al navegador es html ¿no? pues en ese html debe estar incluída esa directiva meta
  #9 (permalink)  
Antiguo 07/03/2006, 05:26
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
Vamos a hacer una cosa, intenta enviarlo desde asp con Response.Charset="ISO8859-1"
  #10 (permalink)  
Antiguo 07/03/2006, 05:31
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
nada he puesto eso y na de na me sigue saliendo la mierda de las interrogaciones asi es como me sale:

Cita:
CONVOCADAS 160 MANIFESTACIONES EN EL PA?

Intensa jornada de movilizaciones en Francia contra un contrato que facilita el despido de j?es

Francia vive hoy una jornada de movilizaciones contra el Contrato de Nueva Contrataci?anzado por el Gobierno franc? que permite el despido fulminante de j?es a lo largo de dos a? La protesta, que incluir?60 manifestaciones en todo el pa? afecta ya al transporte p?o urbano y ha provocado la anulaci?e vuelos.
por ejemplo donde pone j?es deberia poner jóvenes
  #11 (permalink)  
Antiguo 07/03/2006, 05:54
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
on error resume next
Dim objXMLHTTP, xml
Set xml = Server.CreateObject("MSXML2.XMLHTTP")
xml.Open "GET", strURL, False
xml.setRequestHeader "Accept-Language", "sp"
xml.setRequestHeader "Pragma", "no-cache"
xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

xml.Send
cadena = Cstr(xml.responseText)
Response.Write(cadena)



intenta asi a ver si te funciona
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #12 (permalink)  
Antiguo 07/03/2006, 06:01
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
sigue apareciendome igual, pero gracias por intentarlo.
  #13 (permalink)  
Antiguo 07/03/2006, 07:53
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
no sera problema con el idioma default del servidor?? o tienes ambos sitios en el mismo server?.. saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #14 (permalink)  
Antiguo 07/03/2006, 08:57
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
Cita:
Iniciado por kalandas
nada he puesto eso y na de na me sigue saliendo la mierda de las interrogaciones asi es como me sale:
por ejemplo donde pone j?es deberia poner jóvenes
¿Dónde lo has puesto? ponlo justo ahí

Código:
<%
	link="http://www.elmundo.es"
	GetText  link

function GetText (link)
        on error resume next
	Dim objXMLHTTP, xml
	Set xml = Server.CreateObject("MSXML2.XMLHTTP")
	xml.Open "GET", strURL, False
	xml.Send
	cadena = Cstr(xml.responseText)
	Response.Charset="ISO8859-1"

	Response.Write(cadena)
end function
%>
  #15 (permalink)  
Antiguo 07/03/2006, 11:14
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
Lo miro mañana por la mañana que ahora no tengo el programa aqui, lo pruebo y mañana te cuento, muchas gracias
  #16 (permalink)  
Antiguo 07/03/2006, 11:18
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
Muchas de nadas

si no lograras resultado déjanos una url donde poder verlo en marcha. Realmente es una cuestión de cómo llega al navegador, me vendría bien poder ver qué sale en el código fuente que le llega al navegador
  #17 (permalink)  
Antiguo 08/03/2006, 03:34
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola, probé como me dijistes y nada de nada, pero no te puedo dar ninguna url donde puedas probar el programa si me das un email te mando un jpg de lo que me sale para que lo veas, de todas formas te pongo el programa tal y como lo tengo entero pa ver si encuentras algo, porque lo que es yo...
Código:
<%
	link="http://www.elmundo.es"
	GetText link
%>
<%
function GetText(strURL)
	on error resume next
	Dim xml
	Set xml = Server.CreateObject("Microsoft.XMLHTTP")
	xml.Open "GET", strURL, False
	xml.setRequestHeader "Accept-Language", "sp"
	xml.setRequestHeader "Pragma", "no-cache"
	xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

	xml.Send
	cadena = Cstr(xml.responseText)
	Response.Charset="ISO8859-1"
	Response.Write(cadena)
	GetText=cad
	'response.Write(quitatags(cadena))
end function
%>

Última edición por kalandas; 08/03/2006 a las 03:49
  #18 (permalink)  
Antiguo 08/03/2006, 05:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 8 meses
Puntos: 381
Hola de nuevo,

bueno, veo que los interrogantes están ya en el propio código fuente, por eso no se soluciona con el juego de caracteres si ya llegan así.

También he visto que es una pregunta bastante planteada en la red y poco resuelta. Pero encontré un foro brasileño en donde un moderador encontró la forma de resolverlo (lo he probado y funciona perfecto)
http://scriptbrasil.com.br/forum/ind...howtopic=61259
Código:
Function BinaryToString(xBinary)

Dim Binary
Dim RS, LBinary

If VarType(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
Const adLongVarChar = 201
Set RS = CreateObject("ADODB.Recordset")
LBinary = LenB(Binary)

If LBinary>0 Then
RS.Fields.Append "mBinary", adLongVarChar, LBinary
RS.Open
RS.AddNew
RS("mBinary").AppendChunk Binary
RS.Update
BinaryToString = RS("mBinary")
Else
BinaryToString = ""
End If

Set RS=Nothing

End Function
Function MultiByteToBinary(MultiByte)

Dim RS, LMultiByte, Binary
Const adLongVarBinary = 205

Set RS = CreateObject("ADODB.Recordset")
LMultiByte = LenB(MultiByte)

If LMultiByte>0 Then
RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
RS.Open
RS.AddNew
RS("mBinary").AppendChunk MultiByte & ChrB(0)
RS.Update
Binary = RS("mBinary").GetChunk(LMultiByte)
End If

Set RS = Nothing
MultiByteToBinary = Binary

End Function

dim objXMLHTTP
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
Url = "http://www.scriptbrasil.com.br/"
objXMLHTTP.Open "GET", URL, FALSE
objXMLHTTP.Send
sai=objXMLHTTP.responsebody
set objXMLHTTP=nothing
response.write BinaryToString(sai)
Úsalo de referencia para adaptarlo al tuyo o úsalo tal cual.

Un saludo
  #19 (permalink)  
Antiguo 08/03/2006, 05:42
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
para que sirve esa funcion BinarytoString que me has puesto?
  #20 (permalink)  
Antiguo 08/03/2006, 05:46
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
Ni idea que coño hace esa funcion, el caso que funciona, muchisimas gracias, me has sido de muchisima ayuda, ya pensaba que no tenia solucion, bueno voy a integrar todo ese código a mi programa que es mucho mas tocho, y nuevamente gracias, si tengo algún problema ya lo pondré en el foro ciao
  #21 (permalink)  
Antiguo 17/03/2006, 03:44
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola de nuevo, me acabo de dar cuenta que aunque funciona bastante bien lo que me mandastes, en páginas que antes sin la funcion que me distes, si que me sacaba bien las palabras ahora me las saca de un modo muy raro, por ejemplo con http://google.es. A ver si sabes porque es, muchas gracias ciao
  #22 (permalink)  
Antiguo 07/08/2009, 11:57
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: Porque me sale "?" al sacar el código fuente?

Hola,

formulo mi pregunta en este tópic, ya que es la misma que con la que se abrió el tópic.

No pudo poner en un Response.Write, un texto que contenga acentos o eñes. Me salen en su lugar otros símbolos (dependiendo de si utilizo la codificación utf-8 o la iso, me saldrán unos u otros).

He probado las cosas ya dichas arriba, y ninguna ha funcionado. La solución que dieron en este tópic, del BinaryToString, no me funciona, ya que me devuelve sólo la primera letra del texto, no sé por qué.

Por otro lado, he probado a sustituir los caracteres "problemáticos" por su equivalente en HTML, y no va bien, ya que al utilizar la función Replace, y buscar una "ñ" por ejemplo, me reemplaza para todas las "ñ", y vocales con acentos que haya. Es decir, que no distingue unas de otras, como si todas fueran el caracter extraño que se muestra por pantalla.

¿Alguien tiene alguna idea para solucionarlo?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:17.