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

Capturar texto en UTF-8 y pasarlo a ISO-8859-1

Estas en el tema de Capturar texto en UTF-8 y pasarlo a ISO-8859-1 en el foro de ASP Clásico en Foros del Web. Buenas, Tengo una Web que está codificada en ISO-8859-1 y uso una función para recoger un texto de otra página que tengo que revisar regularmente, ...
  #1 (permalink)  
Antiguo 02/07/2008, 09:37
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 5 meses
Puntos: 6
Capturar texto en UTF-8 y pasarlo a ISO-8859-1

Buenas,

Tengo una Web que está codificada en ISO-8859-1 y uso una función para recoger un texto de otra página que tengo que revisar regularmente, la función es esta:

Código PHP:
 Public Function ConsultaRemotaHTML(URL)
  
On Error Resume Next
  Dim Consul
  Set Consul 
Nothing
  Set Consul 
Server.CreateObject("WinHttp.WinHttpRequest.5.1")
  If 
Consul Is Nothing Then Set Consul CreateObject("WinHttp.WinHttpRequest")
  If 
Consul Is Nothing Then Set Consul CreateObject("MSXML2.ServerXMLHTTP")
  If 
Consul Is Nothing Then Set Consul CreateObject("Microsoft.XMLHTTP")
  
'Consul.SetProxy 2, Proxy, ""
  Consul.Option(6) = True
  Consul.Open "GET", Trim(URL), False
  Consul.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
  Consul.SetRequestHeader "Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7"
  Consul.Send()
  Consul.WaitForResponse(180) '
Esperamos 3 minutos como máximo.
  If 
Consul.status 200 Then ESTADO OK
   ConsultaRemotaHTML 
Consul.ResponseText
  
Else
   
ConsultaRemotaHTML ""
  
End If
  
Set Consul Nothing
 End 
Function 
La historia está en que en la otra página la información está en UTF-8 y cuando la recogo me viene de esta guisa:

Cita:
Vendedor: HP
Código del producto: PL766AA#ABB
Categoría: monitores TFT
Código EAN/UPC: 0829160568744, 0829160568584
Es decir, los acentos y demás se van al garete, he probado mil historias, como por ejemplo cambiar la codificación con esta instrucción:

Código PHP:
Response.Charset="UTF-8" 
Por supuesto funciona, pero el resto del texto de la Web me lo escibe mal... porque cambia todo...

Pensando he llegado a la conclusión que quizás poniendo un "SetRequestHeader" que me indique como quiero esa codificación funcionase pero no sé como hacerlo, tan solo necesito que me llegue el texto con el acento o la ñ, luego ya me preocuparé yo de transformarlo a ISO como pueda.

¿Alguien ha tenido algún problema similar?

Por si sirve de más ayuda, estoy intentando consultar los archivos de Icecat, que es un proyecto de información informática libre.

Gracias!
  #2 (permalink)  
Antiguo 02/07/2008, 12:04
 
Fecha de Ingreso: abril-2005
Mensajes: 182
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: Capturar texto en UTF-8 y pasarlo a ISO-8859-1

Hola pempas, no te sirve hacer una función que reemplace esos caracteres especiales?? ej: reemplazar ó por ó con la funcion replace?
  #3 (permalink)  
Antiguo 03/07/2008, 02:23
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 5 meses
Puntos: 6
Respuesta: Capturar texto en UTF-8 y pasarlo a ISO-8859-1

Buenas Chan,

Sí que puedo hacerlo así, de hecho lo acabo de hacer así pero quería algo más estético quizás, pensaba que habría alguna función o procedimiento que lo permitiera.

Mira, adjunto la función que he creado de reemplazo:

Código PHP:
Public Function CodificaISO(Texto)
  
Texto Replace(Texto"á""á")
  
Texto Replace(Texto"é""é")
  
Texto Replace(Texto"ó""ó")
  
Texto Replace(Texto"ú""ú")
  
Texto Replace(Texto"ñ""ñ")
  
Texto Replace(Texto"í""í")
  
Texto Replace(TextoVbCrlf"")
  
Texto Replace(TextoVbTab"")
  
CodificaISO Texto
 End 
Function 
Muchas gracias.
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 20:15.