Foros del Web » Programando para Internet » Javascript »

Acentos

Estas en el tema de Acentos en el foro de Javascript en Foros del Web. Estoy usando un AJAX y desde php mando un mensaje con echo $mensaje que está en formato del tipo más (para decir "más"). Al recibirlo ...
  #1 (permalink)  
Antiguo 06/06/2013, 01:36
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Acentos

Estoy usando un AJAX y desde php mando un mensaje con

echo $mensaje

que está en formato del tipo más (para decir "más").

Al recibirlo en el javascript y hacer alert(mensaje), me sale "más" en lugar de "más".

Mi pregunta es si javascript no trabaja con formatos HTML del tipo "más".
  #2 (permalink)  
Antiguo 06/06/2013, 05:57
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Acentos

..estas usando <meta charset="utf-8"> en tu <head>?
  #3 (permalink)  
Antiguo 06/06/2013, 06:52
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
Puntos: 1485
Respuesta: Acentos

buenas...

Cita:
Mi pregunta es si javascript no trabaja con formatos HTML del tipo "m&aacute;s".
no, javsacript no procesa las entidades html. esto porque javascript no es un motor html (user-agent, correctamente dicho). cabe hacer una señalación importante sobre este aspecto. mientras el mensaje sea directamente mostrado con javascript —alert, confirm, prompt u otro parecido—, requerirás escribir el texto tal cual es. es decir, si por ejemplo hay acentos, tienes que escribirlo como es.

sin embargo, para otros métodos —innerHTML o document.write— puedes usar ambas formas: como la anterior o con entidades. nótese que las entidades funcionan con innerHTML o document.write porque es el navegador quien realmente está procesando el texto mas no javascript. si el texto original esta escrito sin entidades, entonces debes cotejar la codificación para que se muestren correctamente.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 06/06/2013, 07:06
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Acentos

Claro como el agua, gracias.
  #5 (permalink)  
Antiguo 07/06/2013, 13:21
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Acentos

Perdón porque le he dado a SOLUCIONADO y aún no lo está. Me pasa lo siguiente.

He mantenido el juego de caracteres UTF-8 y he usado caracteres "especiales" para conseguir acentos y eñes.

Dentro del PHP hago:

Código PHP:
Ver original
  1. echo "No puedes a\u00F1adir m\u00E1s cosas";
Lo recojo en el javascript con:

Código Javascript:
Ver original
  1. var respuesta=ajax.responseText;

Al hacer:

Código Javascript:
Ver original
  1. alert(respuesta)

me sale: "No puedes a\u00F1adir m\u00E1s cosas" en lugar de "No puedes añadir más cosas".

Lo más curioso de todo es que si hago la prueba dentro de js forzando una variable:

Código Javascript:
Ver original
  1. respuesta2="No puedes a\u00F1adir m\u00E1s cosas";
  2. alert(respuesta2);

me sale perfectamente el mensaje "No puedes añadir más cosas"

Qué extraño no???
  #6 (permalink)  
Antiguo 08/06/2013, 11:51
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
Puntos: 1485
Respuesta: Acentos

no lo comprendo muy bien, pero parece que hay una diferencia sustancial cuando se trata de contenido por ajax y contenido por navegador.

http://phpscripting.awardspace.us/ntilde.php
ntilde.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>Devel</title>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body><script type="text/javascript">
alert("<?php echo 'from html:\nunicode: \u00f1\nliteral: ñ'?>");
</script>
<script type="text/javascript" src="ntilde.js.php"></script>
</body>
</html>
ntilde.js.php
Código PHP:
<?php header("Content-Type: text/javascript; charset=utf-8"); 
echo 
'alert("from js file:\nunicode: \u00f1\nliteral: ñ");';
?>
en ese ejemplo, fíjate que tanto el script en html como en el archivo js muestra bien el caracter. sin embargo, si cargas ntilde.php por ajax y haces un alert verás que no se interpreta el unicode. mi hipótesis es que javascript no está analizando el string que viene por ajax y por tanto no puede parsear las secuencias unicode.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 10/06/2013, 03:06
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Acentos

Entonces... no habría solución a este entuerto?

Etiquetas: acentos, ajax, html, php
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 15:28.