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

Caracteres problematicos ¿como mostrar y almacenar?

Estas en el tema de Caracteres problematicos ¿como mostrar y almacenar? en el foro de ASP Clásico en Foros del Web. Hola a todos: Tengo una base de datos en Access y en ella almaceno un texto que puede contener " , ', \n, ?.... y ...
  #1 (permalink)  
Antiguo 27/05/2003, 05:07
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
Caracteres problematicos ¿como mostrar y almacenar?

Hola a todos:

Tengo una base de datos en Access y en ella almaceno un texto que puede contener " , ', \n, ?.... y un sinfin de caracteres que pueden resultar problematicos al pasarlos como argumentos.

Por ahora no he tenido mas problema que el de sustituir el salto de linea por un <br> para mostrarlo en la pagina, pero el problema surge cuando el texto contiene, por ejemplo, comillas dobles (").

Necesito saber que relacion de caracteres pueden resultar problematicos al pasarlos como argumento, como debo transformarlos (ya se que es con un replace, pero necesito saber como mostrarlos con el caracter correcto sin afectar al codigo), y que es mas conveniente, convertir y almacenar en la bd, o almacenar en la bd, y convertir antes de pasar como argumento (hasta ahora lo he hecho con esta segunda opcion).

Gracias con antelacion.

__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #2 (permalink)  
Antiguo 27/05/2003, 05:47
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 7 meses
Puntos: 5
Yo te recomiendo, convertir y almacenar en la Base de datos.

Respecto a los caracteres, dejame que busque un poco para darte una solución completa.

Un besaaaazoooooooooo

Aquít tienes la función que lo hace todo solita:

Server.HTMLEncode(texto)

Código PHP:
Recibe una cadena a la que le sustituye los caracteres especiales del HTML
por ejemplo se convierte en &lt;  
o ¿ se sustituye por &#191; 
Ejemplo de uso:

Código PHP:
<% 
cadena Server.HTMLEncode("Esto es una <b>Tontería</b>, este texto ""es falso"" ¿Vale?"

response.write cadena 
%> 
Esto nos devolvería

Código PHP:
Esto es una &lt;b&gt;Tonter&#237;a&lt;/b&gt;, 
este texto &quot;es falso&quot; &#191;Vale? 
Un beso

Última edición por Helbira; 27/05/2003 a las 08:52
  #3 (permalink)  
Antiguo 27/05/2003, 07:06
 
Fecha de Ingreso: marzo-2001
Ubicación: Gran Canaria
Mensajes: 381
Antigüedad: 23 años, 3 meses
Puntos: 2
supongo que habra algun:

Server.HTMLDecode


o algo parecido para realizar el proceso inverso al sacar los datos de la base de datos, no?



ToKaTa.
  #4 (permalink)  
Antiguo 27/05/2003, 07:57
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
Precisamente eso iba a preguntar yo...

de todas maneras el texto se introduce desde la pagina, con lo cual me surge una duda:

¿Que hace HTML ENCODE con el salto de linea?

Si hay un decode ¿transforma el salto de linea en un <br>?

gracias elv....

__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.


Última edición por sgafo; 27/05/2003 a las 08:00
  #5 (permalink)  
Antiguo 27/05/2003, 08:50
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 7 meses
Puntos: 5
Pues no, no existe Server.HTMLDecode pero aquí tienes una función con la operación inversa de HTMLEncode:

Código PHP:
Function HTMLDecode(byVal encodedstring)
    
Dim tmpi
    tmp 
encodedstring
    tmp 
Replacetmp"&quot;"chr(34) )
    
tmp Replacetmp"&lt;"  chr(60) )
    
tmp Replacetmp"&gt;"  chr(62) )
    
tmp Replacetmp"&amp;" chr(38) )
    
tmp Replacetmp"&nbsp;"chr(32) )
    For 
1 to 255
        tmp 
Replacetmp"&#" ";"chr) )
    
Next
    HTMLDecode 
tmp
End 
Function 


Respecto a lo de que pasa con los <br>... sólo tienes que hacer una prueba sencilla......

Verás.. Si tu cadena de texto que le pasas a Server.HTMLEncode contiene etiquetas <br> lo lógico y lo que ocurre realmente es que Server.HTMLEncode("<br>") la convierte a &lt;br&gt; y así la guardará en tu BD pero no hay ningún problema si cuando la imprimas en tu página web le pasas las función anterior HTMLDecode("&lt;br&gt;") porque volverá a convertírtela a <br> y el navegador perfectamente lo interpretará como un salto de línea HTML.

Un beso
  #6 (permalink)  
Antiguo 27/05/2003, 09:21
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
no no... mi cadena original contendra un salto de linea, no un <br>, ya que el usuario introduce un fichero de texto, no codigo HTML.

De todos modos lo revisare en casa con mas calma

besinos...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #7 (permalink)  
Antiguo 27/05/2003, 09:36
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 7 meses
Puntos: 5
Da igual, ya te lo miré yo.. es una tontería..

Con el \n no ocurre nada.. lo deja tal cual. Por tanto, tienes que pasarle el replace aparte para ese caso.

Ciao
  #8 (permalink)  
Antiguo 27/05/2003, 09:41
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 22 años, 7 meses
Puntos: 0
Gracias Elv...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

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 00:22.