Foros del Web » Programando para Internet » Javascript »

devolver ñ y tildes

Estas en el tema de devolver ñ y tildes en el foro de Javascript en Foros del Web. Hola... tengo un pequeño problema con un formulario el cual lo valido con el servidor y retorno la respuesta con JS... para esto hago una ...
  #1 (permalink)  
Antiguo 07/01/2010, 11:28
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
devolver ñ y tildes

Hola... tengo un pequeño problema con un formulario el cual lo valido con el servidor y retorno la respuesta con JS... para esto hago una carga en un div que oculta el formulario (mientras sube archivos) y al finalizar la validacion me vuelve a mostrar el formulario con el error.

Para mostrar nuevamente el formulario hago un innerHTML que me imprime el codigo html del formulario. Ahora, en caso el usario haya escrito correctamente algunos campos anteriores, también imprimo el value de los inputs anteriormente escritos (para que no vuelva a escribirlos en caso de error).

El problema radica ahi. Luego de validar en el servidor yo retorno los valores de los inputs a una funcion que tiene como parametros el error y los values de los inputs... asi:

Código PHP:

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result?>,'<?php echo $descripcion?>');</script>
Ahi todo bien y en mi funcion js devuelvo el resultado y el formulario (solo muestro el input en el ejemplo)

Código:
function stopUpload(success,campoT1){


.....

document.getElementById('div_form').innerHTML = result + <input name="descrip" id="descrip" value="'+campoT1+'">

}
Cuando el usuario escribe alguna palabra con ñ o tilde al momento de validar me retorna caracteres raros en el value... se me ocurre primero hacer una funcion que me reemplaze las ñ o tildes por ese codigo \xdd a cada cadena pero no se si será muy engorroso .... espero me puedan ayudar en este tema.... gracias!


P.d. Necesito trabajar con el charset utf8 .... hay alguna manera de configurar el ISO-8859-1 en una funcion js?
__________________
Quitenme la vida pero no la bebida.

Última edición por cesarpunk; 07/01/2010 a las 11:35
  #2 (permalink)  
Antiguo 07/01/2010, 11:32
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: devolver ñ y tildes

revisa las funciones de codificacion del script de tu server, si es PHP, las funciones más comunes son:

htmlentities (reemplaza los caracteres especiales a su entidades ejemplo: a = &aacute;)
utf8_encode, utf8_decode

y existen muchas más como las librerias iconv y multibyte

desbes devolver el resultado en la codificación que tenga el META de la página, si es UTF8 debes devolver el resultado como tal
  #3 (permalink)  
Antiguo 07/01/2010, 11:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: devolver ñ y tildes

Probablemente sea un problema con la codificación de caracteres. Revisa que la página principal y la página que cargas en el iframe tengan la misma codificación. Además, verifica si del lado del servidor se está devolviendo los valores con la codificación adecuada.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 07/01/2010, 14:02
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
Respuesta: devolver ñ y tildes

Bueno en primer lugar el form hace un target al un iframe oculto... asi que no hay pagina alguna , solo la pagina principal tiene el meta utf8. Ahora he probado con el utf8_decode() en los parametros y me funciona bien en IE.... pero en el Firefox salen unos cuadritos raros.... debo probar con otros comandos?
__________________
Quitenme la vida pero no la bebida.
  #5 (permalink)  
Antiguo 07/01/2010, 18:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: devolver ñ y tildes

como ya se te indico, si tu documento esta trabajando en una codificacion, el contenido debe ser devuelto en dicha codificacion. ademas de devolver el contenido, el formulario con los valores, intenta escribiendo un HEAD con META UTF-8. es decir, <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />. en firefox puede ser que te muestre los caracteres raros porque: no le estas indicando la codificacion, la codificacion no se hereda en multiples ventanas, y tu navegador esta configurado para interpretar el contenido en ISO-8859-1 cuando la codificacion no se especifica.

@edit,
me olvide indicar que en php tienes la funcion utf8_encode() para codificar contenido a utf8.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 07/01/2010 a las 18:25
  #6 (permalink)  
Antiguo 08/01/2010, 09:03
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
Respuesta: devolver ñ y tildes

bueno... en un principio he usado el meta utf8 , ahora creo que tengo un problema con los exploradores.

Cuando uso este meta y no uso el utf8_encode() , el explorer me muestra caracteres raros... pero en firefox me funciona bien.

Cuando uso el meta y el uft8_encode() , el explorer falla y el firefox tambien

Pero cuando uso el meta y el uft8_decode(), el explorer funciona bien y el firefox falla.

Creo que esto es un problema del php... sino lo consigo tendré que cambiar el ISO
__________________
Quitenme la vida pero no la bebida.
  #7 (permalink)  
Antiguo 08/01/2010, 09:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: devolver ñ y tildes

Es que esto de las codificaciones de caracteres no se trata sólo de probar combinaciones aleatorias de los elementos involucrados, tienes que tener en cuenta qué codificación tiene cada elemento que utilizas y a partir de ahí realizar los cambios. Aquí una explicación bastante detallada al respecto:
http://www.forosdelweb.com/2867225-post13.html
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 08/01/2010, 10:04
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
Respuesta: devolver ñ y tildes

Hola David, según lo que leí cada elemento recibe de su manera la codificacion charset... creo que el problema estaba en que el servidor recibía el charset en otro tipo de codificación y le agregue el header ('Content-type: text/html; charset=utf-8'); y ahora funciona bien en cada browser... gracias por la ayuda y disculpa por desvirtuar el foro con php
__________________
Quitenme la vida pero no la bebida.

Etiquetas: devolver, tildes
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 14:34.