Retroceder   Foros del Web > Programación para sitios web > ASP

Respuesta
 
Herramientas Desplegado
Antiguo 28-mar-2008, 11:41   #1 (permalink)
MandrakeXP está en el buen camino
 
Fecha de Ingreso: marzo-2005
Mensajes: 254
replace que no funciona :(

hola, estoy intentando quitar las tildes y caracteres especiales en de un texto pero no me deja


este código no funciona:

Código:
		auxiliar=replace(auxiliar,"á","a")
		auxiliar=replace(auxiliar,"Á","A")

sin embargo este otro si funciona:

Código:
auxiliar=replace(auxiliar,"a","xxxxxxxx")

¿Sucede algún caso especial con las tildes?

gracias
MandrakeXP está desconectado   Responder Citando
Antiguo 28-mar-2008, 12:11   #2 (permalink)
Moderador
Al Zuwaga llegará a ser famoso muy prontoAl Zuwaga llegará a ser famoso muy prontoAl Zuwaga llegará a ser famoso muy prontoAl Zuwaga llegará a ser famoso muy prontoAl Zuwaga llegará a ser famoso muy pronto
 
Avatar de Al Zuwaga
 
Fecha de Ingreso: noviembre-2002
Ubicación: 34.517 S, 58.500 O
Mensajes: 12.106
Re: replace que no funciona :(

Cita:
¿Sucede algún caso especial con las tildes?
No, debería funcionar... salvo que lo que tengas como á no séa realmente á sino, por ejemplo, á

O tal vez... ¿que sea un problema de codificación?
__________________
···---···
Al Zuwaga está desconectado   Responder Citando
Antiguo 28-mar-2008, 12:24   #3 (permalink)
MandrakeXP está en el buen camino
 
Fecha de Ingreso: marzo-2005
Mensajes: 254
Re: replace que no funciona :(

el texto está en una abse de datos y seguro que pone "á" qué tipo de problema por codificación te refieres?
MandrakeXP está desconectado   Responder Citando
Antiguo 28-mar-2008, 21:38   #4 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
Alegría Re: replace que no funciona :(

Al Zuwaga tiene razón... prueba utilizar el Nombre HTML en vez de el caracter en si:

Lo que no estoy seguro es si va entre comillas o no... prueba tu mismo:

Código:
auxiliar=replace(auxiliar,"á","a")
auxiliar=replace(auxiliar,"Á","A")
Código:
auxiliar=replace(auxiliar,á,"a")
auxiliar=replace(auxiliar,Á,"A")
Aca te dejo una pagina donde salen todos los caracteres con su "Nombre en HTML" que es el que debes usar.

http://ascii.cl/es/codigos-html.htm

En esa pagina tambien estan los codigos ASCCI por si alguna vez los necesitas
i_e_s27 está desconectado   Responder Citando
Antiguo 28-mar-2008, 21:53   #5 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
Re: replace que no funciona :(

Aunque son un monton de caracteres especiales...

Quizas te convenga hacer un bucle, algo asi:

Código:
'Guardas todos los caracteres especiales en un array:

ArrayCaracteresEspeciales = Array1 = Split ("Áá,ETC SEPARADO POR COMAS", ",", -1, 1)

'Guardas los caracteres con el que quieras que se reemplace. Ojo que tienen que tener el mismo orden! Si hay algun caracter que no tiene reemplazo pon ,, (dos comas seguidas) para eliminar el caracter especial.

ArrayCaracteresReemplazo = Array1 = Split ("A,a,ETC SEPARADO POR COMAS", ",", -1, 1)

'Al hacer el split no estoy seguro si tienes que utilizar vbTextCompare (el ultimo 1) o vbBinaryCompare (reemplazar el ultimo 1 por un 0)

'Hacer el bucle que te saca los caracteres que cargaste en el array:

For i = 0 to uBound(ArrayCaracteresEspeciales )
     auxiliar=replace(auxiliar,ArrayCaracteresEspeciales(i), ArrayCaracteresReemplazo(i))
Next
Quizas haya algo mas simple o me este equivocando... que me corrijan si es asi
i_e_s27 está desconectado   Responder Citando
Antiguo 29-mar-2008, 04:37   #6 (permalink)
MandrakeXP está en el buen camino
 
Fecha de Ingreso: marzo-2005
Mensajes: 254
Re: replace que no funciona :(

me ignora por completo

Código:
    
auxiliar=replace(auxiliar,"á","bbbbbbbbbbb;")
auxiliar=replace(auxiliar,"Á","Á")
auxiliar=replace(auxiliar,"á","a")
no hacen nada estas líneas

uso esto:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
MandrakeXP está desconectado   Responder Citando
Antiguo 30-mar-2008, 06:05   #7 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
De acuerdo Re: replace que no funciona :(

Aca te dejo el codigo probado y andando.

Código:
<%
auxiliar = "Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ"

Response.Write(auxiliar)

Response.Write("<br />") 'Salto de linea

'Guardas todos los caracteres especiales en un array:

ArrayCaracteresEspeciales = Split ("á,é,í,ó,ú,Á,É,Í,Ó,Ú,®,ñ", ",", -1, 1)

'Guardas los caracteres con el que quieras que se reemplace. Ojo que tienen que tener el mismo orden! Se corresponden. Si hay algun caracter que no sabes por cual reemplazarlo simplemente lo "eliminas" dejando el espacio vario entre las comas

ArrayCaracteresReemplazo = Split ("a,e,i,o,u,A,E,I,O,U,,n", ",", -1, 1)

For i = 0 to uBound(ArrayCaracteresEspeciales )
     auxiliar=replace(auxiliar,ArrayCaracteresEspeciales(i), ArrayCaracteresReemplazo(i),1,-1,1)
Next
Response.Write(auxiliar)
%>
Por cierto, yo uso <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> y me tira esto:

Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ
Aja, mi papa se subio al camion. Aa Ee Ii Oo Uu aa ee ii oo uu nn

Pero si uso <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> me tira esto:

Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ
Aja, mi papa se subio al camion. AA EE II OO UU aa ee ii oo uu nn

Queda a tu criterio.
i_e_s27 está desconectado   Responder Citando
Antiguo 30-mar-2008, 07:00   #8 (permalink)
i_e_s27 tiene algunos puntos positivos de karma
 
Avatar de i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 195
De acuerdo Re: replace que no funciona :(

Estaba leyendo la Biblioteca de Clases,Funciones y Sub-rutinas aca en el foro, y encontre esta funcion, y me acorde de ti.

Código:
Function SinAcentos(str) 
  	Dim intI, strCar, Dev
    	Dev = ""
    	For intI = 1 To Len(str)
      		strCar = Mid(str, intI, 1)
      		Select Case strCar
			Case "à": Dev = Dev & "a"
			Case "á": Dev = Dev & "a"
			Case "è": Dev = Dev & "e"
			Case "é": Dev = Dev & "e"
			Case "í": Dev = Dev & "i"
			Case "ò": Dev = Dev & "o"
			Case "ó": Dev = Dev & "o"
			Case "ú": Dev = Dev & "a"
			Case Else: Dev = Dev & strCar
      		End Select
    	Next
    	SinAcentos = Dev
End Function
Y se llamaria de esta forma:

Código:
auxiliar = "Ajá, mi papá se subio al camión. AÁ EÉ IÍ OÓ UÚ aá eé ií oó uú ®® ññ"
auxiliar = SinAcentos(auxiliar)
Cualquiera sirve... te toca elegir!
i_e_s27 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:35.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93