Foros del Web » Programando para Internet » Javascript » Frameworks JS »

ajax.open me convierte acentos a caracteres extraños

Estas en el tema de ajax.open me convierte acentos a caracteres extraños en el foro de Frameworks JS en Foros del Web. Hola a todos! Estoy desesperado. Llevo dos días con esto y no sé qué hacer. Os paso un código fuente de ejemplo. Para que véais ...
  #1 (permalink)  
Antiguo 17/02/2011, 11:20
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 10 meses
Puntos: 4
ajax.open me convierte acentos a caracteres extraños

Hola a todos! Estoy desesperado. Llevo dos días con esto y no sé qué hacer. Os paso un código fuente de ejemplo. Para que véais lo que pasa:

Tengo una web compuesta por dos DIV, el primer div tiene un texto. El segundo DIV se informa incluyendo otra página ( mediante include ). Esta segunda página tiene otro texto. Hasta aquí todo bien. Se ve bien el texto de los dos DIV. La página que se carga en el segundo DIV, además tiene un link. Este link recarga esta página cargada en el segundo DIV. Es entonces, cuando el texto del segundo DIV muestra carácteres extraños en lugar de acentos ( trabajo con FireFox ). Os paso el código de "index.php" y de "pagina2.php"

ESTE ES EL CÓDIGO DE INDEX.PHP
--------------------------------------------

<html>

<head>

<title>Prueba</title>

<script>
// Crea el objeto AJAX
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

// Esta funcion crea un objeto ajax, recupera la página "pagina2.php"
// y la imprime en el div "contenido"
function Pagina(){

divContenido = document.getElementById('contenido');

ajax=objetoAjax();

ajax.open("GET", "pagina2.php");

ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divContenido.innerHTML = ajax.responseText
}
}

ajax.send(null)
}
</script>

</head>

<body>

<!-- Sencillamente hay dos DIV uno con el texto de la página principal. El segundo -->
<!-- contiene el texto de pagina2.php -->

<div id="div1">
<table border="1">
<tr><td>Texto de la página 1. Aquí sí que se ven bien los acentos</td></tr>
</table>
</div>

<div id="contenido">
<?php include('pagina2.php')?>
</div>

</body>

</html>


ESTE ES EL CÓDIGO DE PAGINA2.PHP
-----------------------------------------------

<?php
echo 'Página 2. Aquí los acentos se ven con cuadritos';
?>
<a href="javascript:Pagina(); ">Link</a>


Si alguien le puede echar un vistazo y me puede ayudar se lo agradecé de veras, por que yo ya no sé qué más probar.
  #2 (permalink)  
Antiguo 17/02/2011, 11:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a AJAX
  #3 (permalink)  
Antiguo 19/02/2011, 07:16
 
Fecha de Ingreso: febrero-2011
Mensajes: 156
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: ajax.open me convierte acentos a caracteres extraños

Hola a todos! Por si alguen le ocurre lo mismo. En mi caso, como utilizo open a partir de "GET", los datos se pasan con la codificacion iso-8859-1 por lo tanto, hay que incluir en el fichero "pagina2.php" la siguiente cabecera:

<?
header("Content-Type: text/html; charset=iso-8859-1");
?>

Ojo! Si se envía por post, la codificacion sería utf-8!

Etiquetas: acentos, ajax, caracteres, extraño
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:32.