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

Utf-8

Estas en el tema de Utf-8 en el foro de ASP Clásico en Foros del Web. Hola tengo este script en asp: Código: <%OPTION EXPLICIT%> <% dim cuantos dim muestra dim conexion dim sql dim archivo_creado dim fso dim archivo dim ...
  #1 (permalink)  
Antiguo 13/04/2009, 07:04
Avatar de Artepop  
Fecha de Ingreso: noviembre-2002
Ubicación: Fuengirola
Mensajes: 292
Antigüedad: 22 años, 3 meses
Puntos: 1
Exclamación Utf-8

Hola tengo este script en asp:

Código:
<%OPTION EXPLICIT%>

<%
dim cuantos
dim muestra
dim conexion
dim sql
dim archivo_creado
dim fso
dim archivo
dim rs
dim basedatos
cuantos=0
muestra = 100
archivo_creado= "noticias.xml"
basedatos = "datos/noticias.mdb"
set conexion=Server.CreateObject("ADODB.connection")
conexion.provider="Microsoft.Jet.OLEDB.4.0;"
conexion.open server.mappath(basedatos)
sql="select * from entradas order by id desc"
set fso = createobject("scripting.filesystemobject")
Set archivo = fso.CreateTextFile(server.mappath(archivo_creado), true)
set rs=conexion.Execute(sql)
archivo.WriteLine("<?xml version=""1.0"" encoding=""UTF-8""?>")
archivo.WriteLine("<rss version=""2.0"">")
archivo.WriteLine("<channel>")
archivo.WriteLine("<title>www.MFO.com.es</title>")
archivo.WriteLine("<link>http://www.mfo.com.es/noticias-xml.asp</link>")
archivo.WriteLine("<description>Ordenando la web hacia su máxima potencia, proyectado por Miguel Fernández Oviedo.</description>")
do while not rs.EOF and cuantos < muestra
archivo.WriteLine("<item>")
archivo.WriteLine("<title>"&rs("titulo")&"</title>")
archivo.WriteLine("<link>http://www.mfo.com.es/noticias_ver.asp?id="&rs("id")&"</link>")
archivo.WriteLine("<description>"&rs("subtitulo")&"</description>")
archivo.WriteLine("</item>")
rs.MoveNext()
cuantos=cuantos+1
loop
rs.close()
conexion.close()
archivo.WriteLine("</channel>")
archivo.WriteLine("</rss>")
archivo.close
%>

<%
Response.Write "<meta http-equiv=refresh content=0;URL=noticias.xml>"
%>
Este entra en la base de datos Access, crea un documento XML con las entradas de la base de datos y finalmente redirige al documento recientemente creado, osea a noticias.xml

Hasta ahi todo bien, pero quiero poner en el script una orden que al crear el documento lo cree codificado en UTF-8

¿?

Muchas gracias.
__________________
http://www.mfo.com.es/
  #2 (permalink)  
Antiguo 13/04/2009, 11:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 9 meses
Puntos: 839
Respuesta: Utf-8

Puedes usar el ADODB.Stream:
http://gchandra.wordpress.com/2004/0...les-using-asp/
O usar estas funciones de codificación/decodificación UTF-8:
http://www.codetoad.com/asp_utf8.asp
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 14/04/2009, 02:42
Avatar de Artepop  
Fecha de Ingreso: noviembre-2002
Ubicación: Fuengirola
Mensajes: 292
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: Utf-8

¿Cómo seria para montarlo en el script que puse?
__________________
http://www.mfo.com.es/
  #4 (permalink)  
Antiguo 14/04/2009, 07:32
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 1 mes
Puntos: 126
Respuesta: Utf-8

Hola

No te has parado ni un minuto. En el caso que te indica David con funciones, solo has de hacer

archivo.WriteLine("<description>"&EncodeUTF8("Ordenando la web hacia su máxima potencia, proyectado por Miguel Fernández Oviedo.")&"</description>")

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 14/04/2009, 08:36
Avatar de Artepop  
Fecha de Ingreso: noviembre-2002
Ubicación: Fuengirola
Mensajes: 292
Antigüedad: 22 años, 3 meses
Puntos: 1
Desacuerdo Respuesta: Utf-8

No VA !!! - Lo crea por la mitad, hasta description...
__________________
http://www.mfo.com.es/
  #6 (permalink)  
Antiguo 15/04/2009, 05:34
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 1 mes
Puntos: 126
Respuesta: Utf-8

Hola

Sigue dandole vueltas que sí que funciona

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 15/04/2009, 22:27
Avatar de Artepop  
Fecha de Ingreso: noviembre-2002
Ubicación: Fuengirola
Mensajes: 292
Antigüedad: 22 años, 3 meses
Puntos: 1
De acuerdo Respuesta: Utf-8

Hola, monte este y funciona OK 100%

Código:
<%
const adTypeBinary = 1
const adSaveCreateOverwrite = 2
const adModeReadWrite = 3
Set objStream = server.CreateObject("ADODB.Stream")
objStream.Open
objStream.CharSet = "UTF-8"
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("datos/noticias.mdb")&";"
SQL="SELECT TOP 1 * FROM entradas ORDER BY id DESC"
rs.Open SQL, oConn
objStream.WriteText("<?xml version=""1.0"" encoding=""UTF-8""?>")
objStream.WriteText("<rss version=""2.0"">")
objStream.WriteText("<channel>")
objStream.WriteText("<title>www.MFO.com.es</title>")
objStream.WriteText("<link>http://www.mfo.com.es/</link>")
objStream.WriteText("<description>Ordenando la web hacia su máxima potencia, proyectado por Miguel Fernández Oviedo.</description>")
objStream.WriteText("<language>es-es</language>")
objStream.WriteText("<webMaster>[email protected] (Miguel Fernández Oviedo)</webMaster>")
objStream.WriteText("<lastBuildDate>"&(rs("pubDate"))&"</lastBuildDate>")
rs.close
oConn.close
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("datos/noticias.mdb")&";"
SQL="SELECT * FROM entradas ORDER BY id DESC"
rs.Open SQL, oConn
do while not rs.eof
objStream.WriteText("<item>")
objStream.WriteText("<title>"&(rs("titulo"))&"</title>")
objStream.WriteText("<link>http://www.mfo.com.es/noticias_ver.asp?id="&(rs("id"))&"</link>")
objStream.WriteText("<description>"&(rs("subtitulo"))&"</description>")
objStream.WriteText("<comments>http://www.mfo.com.es/noticias_ver.asp?id="&(rs("id"))&"#comentarios</comments>")
objStream.WriteText("<pubDate>"&(rs("pubDate"))&"</pubDate>")
objStream.WriteText("</item>")
rs.movenext
loop
objStream.WriteText("</channel>")
objStream.WriteText("</rss>")
objStream.SaveToFile server.mappath(".") & "/noticias.xml" , adSaveCreateOverWrite
rs.close
oConn.close
objStream.Close
%>

<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "noticias.xml"
%>
Muchas gracias a tod@s. Miguel
PD: Cuando me sea posible lo pondre en mi web bien explicado.
__________________
http://www.mfo.com.es/
  #8 (permalink)  
Antiguo 17/04/2009, 11:46
Avatar de Artepop  
Fecha de Ingreso: noviembre-2002
Ubicación: Fuengirola
Mensajes: 292
Antigüedad: 22 años, 3 meses
Puntos: 1
Sonrisa Respuesta: Utf-8

Aqui esta listo y explicado dentro de mi pequeño conocimiento:
http://www.mfo.com.es/noticias_ver.asp?id=25
¡Sugerencias para mejorarlo! - Muchas gracias.
__________________
http://www.mfo.com.es/
  #9 (permalink)  
Antiguo 17/04/2009, 12:44
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 1 mes
Puntos: 126
Respuesta: Utf-8

Hola

Como sugerencia, podrías usar getrows() en noticias_xml.asp. De esa manera la consulta sería más rápida.

Código asp:
Ver original
  1. Dim titulo, id, descripcion, fecha
  2. titulo = 0
  3. id = 1
  4. descripcion = 2
  5. fecha = 3
  6. const adTypeBinary = 1
  7. const adSaveCreateOverwrite = 2
  8. const adModeReadWrite = 3
  9. Set objStream = server.CreateObject("ADODB.Stream")
  10. objStream.Open
  11. objStream.CharSet = "UTF-8"
  12. objStream.WriteText("<?xml version=""1.0"" encoding=""UTF-8""?>")
  13. objStream.WriteText("<rss version=""2.0"">")
  14. objStream.WriteText("<channel>")
  15. objStream.WriteText("<title>Título de tu sitio web</title>")
  16. objStream.WriteText("<link>http://www.tusitioweb.com/</link>")
  17. objStream.WriteText("<description>Descripción de tu sitio web.</description>")
  18. set oConn=Server.CreateObject("ADODB.Connection")
  19. set rs=Server.CreateObject("ADODB.Recordset")
  20. oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("noticias.mdb")&";"
  21. SQL="SELECT titulo, id, descripcion, fecha FROM entradas ORDER BY id DESC"
  22. rs.Open SQL, oConn
  23. registros = rs.getrows()
  24. rs.close
  25. oConn.close
  26. For i = 0 to UBound(registros,2)
  27. objStream.WriteText("<item>")
  28. objStream.WriteText("<title>"&(registos(titulo,i))&"</title>")
  29. objStream.WriteText("<link>noticias_ver.asp?id="&(registos(id,i))&"</link>")
  30. objStream.WriteText("<description>"&(registos(descripcion,i))&"</description>")
  31. objStream.WriteText("<pubDate>"&(registos(fecha,i))&"</pubDate>")
  32. objStream.WriteText("</item>")
  33. Next 'i
  34. objStream.WriteText("</channel>")
  35. objStream.WriteText("</rss>")
  36. objStream.SaveToFile server.mappath(".") & "/noticias.xml" , adSaveCreateOverWrite
  37. objStream.Close
  38.  
  39. Response.Status="301 Moved Permanently"
  40. Response.AddHeader "Location", "noticias.xml"

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 12:52.